




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Android移動應用開發(fā)案例教程模塊四實現(xiàn)視頻播放任務1播放上/下一個視頻任務2SeekBar調(diào)整聲音大小任務3開/鎖屏的實現(xiàn)任務4橫豎屏切換任務5拍照功能
任務1播放下一個視頻核心代碼:privatevoidplayNextVideo(){if(position<mediaItems.size()-1){position++;//position=position+1mediaItem=mediaItems.get(position);vv_player.setVideoPath(mediaItem.getData());setButton();//設(shè)置按鈕狀態(tài)}}思路:在全局變量中記錄當前播放視頻的position,當點擊
按鈕時position++,再將自加后的視頻地址設(shè)置給videoview控件。再后別忘記最后一個視頻位置判斷,如果當前為最后一個視頻時位置不能自加,并且要調(diào)用設(shè)置按鈕狀態(tài)的方法。任務1播放上一個視頻核心代碼:privatevoidplayPreVideo(){if(position>=0){position--;//position=position-1mediaItem=mediaItems.get(position);vv_player.setVideoPath(mediaItem.getData());setButton();//設(shè)置按鈕狀態(tài)}}思路:在全局變量中記錄當前播放視頻的position,當點擊
按鈕時position--,再將自加后的視頻地址設(shè)置給videoview控件。再后別忘記第一個視頻位置判斷,如果當前為第一個視頻時位置不能自減,并且要調(diào)用設(shè)置按鈕狀態(tài)的方法。任務2SeekBar調(diào)整聲音的大小核心代碼://實例化音量管理audioManager=(AudioManager)getSystemService(AUDIO_SERVICE);//得到當前的音量currentVolume=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);maxVolume=audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);seekbar_voice.setProgress(currentVolume);//為SeekBar設(shè)置當前音量seekbar_voice.setMax(maxVolume);//為SeekBar設(shè)置最大音量思路:定義AudioManager的對象,取得最大音量值和當前音量值分別設(shè)置給seekBar的最大值和當前值,再為seekBar注冊事件監(jiān)聽,當進度改變時修改媒體的當前音量。任務3開/鎖屏實現(xiàn)核心代碼:if(!lock){//如果當前是開屏狀態(tài)rl_root.setVisibility(View.GONE);iv_unlock.setImageResource(R.drawable.lock);lock2=true;lock=true;}else{rl_root.setVisibility(View.VISIBLE);iv_unlock.setImageResource(R.drawable.unlock);handler.removeMessages(2);handler.sendEmptyMessageDelayed(2,5000);lock=false;lock2=false;}思路:為布局中的鎖屏圖片添加事件監(jiān)聽。定義一個boolean全局變量,在單擊事件監(jiān)聽中完成以下內(nèi)容:設(shè)置控制面板可見/不可見;并切換鎖屏/開屏圖片;改變?nèi)肿兞康闹祎rue/false;另外需要注意的是后期為VideoView注冊手勢事件監(jiān)聽后,在開/鎖屏按鈕中要進行修改,即鎖屏時手勢事件監(jiān)聽也不起作用。任務4橫豎屏切換核心代碼:voidlandscape(){//橫屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);Constraints.LayoutParamslayoutParams=newConstraints.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);rl.setLayoutParams(layoutParams);//設(shè)置視頻顯示和控件面板區(qū)域的尺寸DisplayMetricsdisplayMetrics=newDisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);screenWidth=displayMetrics.widthPixels;//屏幕的寬screenHeight=displayMetrics.heightPixels;//屏幕的高RelativeLayout.LayoutParamslayoutParams1=newRelativeLayout.LayoutParams(screenWidth,screenHeight);rl_root.setLayoutParams(layoutParams1);//設(shè)置控件面板的尺寸tv_content.setVisibility(View.GONE);//設(shè)置視頻下面的區(qū)域不顯示vv_player.setVideoSize(screenWidth,screenHeight);//將視頻全屏}思路:為橫屏圖片注冊單擊事件監(jiān)聽,完成以下內(nèi)容:獲取手機屏幕的寬和高值;將控制面板界面的根布局寬、高和VideoView控件的寬、高都設(shè)置為屏幕的寬和高值;將豎屏時窗口下面的布局內(nèi)容隱藏。任務4橫豎屏切換核心代碼:voidportrait(){//豎屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);DisplayMetricsdisplayMetrics=newDisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);screenWidth=displayMetrics.widthPixels;//屏幕的寬screenHeight=displayMetrics.heightPixels;//屏幕的高Constraints.LayoutParamslayoutParams=newConstraints.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,0);rl.setLayoutParams(layoutParams);tv_content.setVisibility(View.VISIBLE);RelativeLayout.LayoutParamslayoutParams1=newRelativeLayout.LayoutParams(screenWidth,screenWidth/2);rl_root.setLayoutParams(layoutParams1);vv_player.setVideoSize(screenWidth,screenWidth/2);思路:為豎屏圖片注冊單擊事件監(jiān)聽,完成以下內(nèi)容:獲取手機屏幕的寬和高值;將控制面板界面的根布局寬、高和VideoView控件的寬、高都設(shè)置為屏幕的寬度值和高度值/2;將豎屏時窗口下面的布局內(nèi)容顯示出來。任務7視頻播放時的拍照功能核心代碼:MediaMetadataRetrievermedia=newMediaMetadataRetriever();media.setDataSource(mediaItem.getData());Bitmapbitmap=media.getFrameAtTime(vv_player.getCurrentPosition()*1000,MediaMetadataRetriever.OPTION_CLOSEST_SYNC);Toast.makeText(System
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45219-2025危險貨物自反應物質(zhì)和有機過氧化物爆燃試驗方法
- 制作生意合同范本
- 2025年天津年貨運從業(yè)資格證模擬考試
- 買裝修材料合同范本
- 與機關(guān)單位合作合同范例
- 村級修橋合同范本
- 產(chǎn)品研發(fā)定制合同范本
- 信息咨詢收費合同范本
- 伙合合同范本
- 勞動合同范本 銀川
- 醫(yī)療機構(gòu)消毒技術(shù)規(guī)范
- 主語從句趣味課件
- 肝脾破裂搶救預案及流程
- 小學生品德發(fā)展與道德教育PPT完整全套教學課件
- 汽車修理廠維修結(jié)算清單
- 《外國法制史》課件
- 新能源汽車維護與故障診斷全套課件
- 《計算機應用基礎(chǔ)》教學教案-02文字錄入技術(shù)
- 2023年1月浙江省高考英語真題及詳細解析
- 2023年大疆科技行業(yè)發(fā)展概況分析及未來五年行業(yè)數(shù)據(jù)趨勢預測
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院院感知識培訓
評論
0/150
提交評論