版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Lesson3
媒體播放器第二階段課堂回顧如何讓控件動起來?自定義控件的原理自定義屬性的兩種方法實現音量控件中小學課件網多媒體簡介多媒體是計算機和視頻技術的結合,實際上它是兩個媒體:聲音和圖像音頻和視頻的播放,我們都會用到MediaPlayer這個類進行播放
中小學課件網從源文件中播放1,在項目的res/raw目錄下,放置一個android支持的多媒體文件,如MP3,會在R文件中生成對應的索引2,通過MediaPlayer.create(this,R.id.et_mp3)創(chuàng)建一個文件3,使用start播放中小學課件網核心代碼mediaplayer=MediaPlayer.create(this,R.raw.music02);
try{ mediaplayer.start(); }catch(IllegalStateExceptione){ e.printStackTrace(); }注:將muisc02.mp3文件放入res/raw的文件夾中中小學課件網從文件系統(tǒng)中播放1,實例化一個MediaPlayer2,MediaPlayer.setData方法調用(輸入文件所在路徑)3,調用MediaPlayer.prepare進行準備4,調用start進行播放中小學課件網核心代碼privatevoidcreateMusicFromPath(Stringpath) { mediaplayer=newMediaPlayer(); try{ mediaplayer.setDataSource(path); mediaplayer.prepare(); mediaplayer.start(); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }注:將音頻文件放入在手機的sdcard,輸入路徑即可播放中小學課件網播放網絡音樂1,獲取音樂鏈接地址A,通過地址創(chuàng)建Uri,通過MediaPlayer.create(this,uri)創(chuàng)建,獲取player對象B,new出MediaPlayer對象,通過MediaPlayer.setData(webPath)創(chuàng)建player對象,然后調用prepare();2,調用start方法進行播放中小學課件網音樂播放器中小學課件網多媒體狀態(tài)中小學課件網使用SeekBar實現控制播放位置功能1,在視圖xml中拖入SeekBar控件2,設置seekBar.setMax(mediaPlayer.getDuration())為媒體的最大長度3,實現控件的OnSeekBarChangeListener接口4,實現onProgressChanged(//當進度狀態(tài)發(fā)生變化時候SeekBarseekBar,intprogress,//當前的進度booleanfromUser)//是否由用戶操作導致publicvoidonProgressChanged(SeekBararg0,intprogress,booleanisFromUser){
if(isFromUser)
{
mediaPlayer.seekTo(progress);
}}中小學課件網實現進度條SeekBar自動移動效果//1,創(chuàng)建一個線程Runnablerun=newRunnable(){ publicvoidrun(){ //TODOAuto-generatedmethodstub //獲取當前播放音樂的位置
if(mediaPlayer!=null) { intcurrent=mediaPlayer.getCurrentPosition(); progressBar.setProgress(current); if(mediaPlayer.isPlaying()) { progressHandler.postDelayed(run,100); } } }};//2,創(chuàng)建一個handler用于控制線程HandlerprogressHandler=newHandler();progressHandler.post(run);//啟動線程progressHandler.postDelayed(run,100);//延時啟動線程progressHandler.removeCallbacks(run);//刪除指定的Runnable對象,使線程對象停止運行。中小學課件網停止,暫停,重播功能實現A,停止1,首先判斷是否是playing調用player的stop方法2,同時要將還沒有執(zhí)行的線程從handler中移除progressHandler.removeCallbacks(run);3,將進度條的seekbar的進度設置為0B,暫停1,利用一個boolean變量判斷是否是pause狀態(tài)2,判斷playing,調用play的pause方法,并且removeCallbacks3,如果是pause狀態(tài),則執(zhí)行start,并且執(zhí)行progressHandler.post方法C,重播1,mediaPlayer.seekTo(0),2,progressBar.setProgress(0);中小學課件網實現進度條SeekBar緩存條效果//設置緩存更新事件mediaPlayer.setOnBufferingUpdateListener(newOnBufferingUpdateListener(){//實現更新方法 publicvoidonBufferingUpdate(MediaPlayerarg0,intarg1){
//在每次更新之后,設置緩存條的進度 progressBar.setSecondaryProgress(arg1*progressBar.getMax()/100);} });中小學課件網MediaPlayer的狀態(tài)A,停止1,首先判斷是否是playing調用player的stop方法2,同時要將還沒有執(zhí)行的線程從handler中移除progressHandler.removeCallbacks(run);3,將進度條的seekbar的進度設置為0B,暫停1,利用一個boolean變量判斷是否是pause狀態(tài)2,判斷playing,調用play的pause方法,并且removeCallbacks3,如果是pause狀態(tài),則執(zhí)行start,并且執(zhí)行progressHandler.post方法C,重播1,mediaPlayer.seekTo(0),2,progressBar.setProgress(0);中小學課件網核心代碼mediaPlayer.reset();//重置為idle狀態(tài)mediaPlayer.setDataSource(file.getAbsolutePath());//設置播放的文件mediaPlayer.prepare();//緩沖mediaPlayer.setOnPreparedListener(newMyPreparedListener());//設置緩沖完成監(jiān)聽mediaPlayer.pause();//暫停mediaPlayer.start();//播放音樂mediaPlayer.stop();();//停止mediaPlayer.seekTo(progress);//設置播放進度mediaPlayer.release();//釋放關聯的資源progressHandler.postDelayed(run,100);//定時調用Runnable對象progressHandler.post(run);//將Runnable對象發(fā)送到消息隊列中progressHandler.removeCallbacks(run);//將run從消息隊列中移除中小學課件網視頻播放器SurfaceView控件中小學課件網SurfaceView控件SurfaceView可以直接從內存或者DMA等硬件接口取得圖像數據,是個非常重要的繪圖容器SurfaceHolder用來操縱surface,處理它在Canvas上畫的效果和動畫,控制表面,大小,像素等中小學課件網核心代碼SurfaceHoldersurfaceHolder=surfaceView.getHolder();//surfaceView的控制對象surfaceHolder.setFixedSize(176,144);//設置分辨率surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);//不使用surfaceview自身的緩沖機制,把得到的數據直接輸出surfaceHolder.setKeepScreenOn(true);//保持屏幕的亮度//在播放前設置顯示畫面mediaPlayer.setDisplay(surfaceView.getHolder());中小學課件網VideoView的使用//獲取VideoView對象videoView=(VideoView)this.findViewById(R.id.videoView);//創(chuàng)建播放視頻的URIUriuri=Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()+"/video.mp4");//設置URIvideoView.setVideoURI(uri);//uri//設置多媒體控制器videoView.setMediaController(newMediaController(this));videoView.start();中小學課件網SoundPool
android中可以用mediaplayer播放音樂,使用soundpool可以播一些短的反應速度要求高的聲音,比如點擊時候的音效//1,創(chuàng)建SoundPoolsoundPool=newSoundPool(3,//同時播放的流的最大數量AudioManager.STREAM_MUSIC,//流的類型,一般為STREAM_MUSIC0);//采樣率轉化質量,當前無效果,使用0作為默認值//2,載入音效intid=load(Contextcontext,intresId,intpriority)//從APK資源載入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025青海建筑安全員考試題庫附答案
- 2025上海市建筑安全員考試題庫及答案
- 2025在線貸款平臺課件模板
- 【大學課件】化工原理多媒體
- 單位管理制度展示選集【職工管理篇】十篇
- 單位管理制度展示大合集【職員管理篇】
- 工廠屋頂光伏發(fā)電項目可行性研究報告
- 2025年中國包裝涂料行業(yè)市場調查研究及投資戰(zhàn)略咨詢報告
- 聊城成立諧振器公司可行性報告
- 《企業(yè)成長規(guī)律》課件
- 浙江省杭州市八縣區(qū)2024-2025學年高二數學上學期期末學業(yè)水平測試試題
- 四川省住宅設計標準
- 超星爾雅學習通《孫子兵法與執(zhí)政藝術(浙江大學)》2024章節(jié)測試含答案
- 石油詞匯大全-俄語專業(yè)詞匯
- 淺談燃機電廠燃氣管道的完整性管理
- 深圳市寶安區(qū)弘雅小學:四雅教育的實踐
- 東營市學校安全工作先進個人申報表岳向明
- 物品出入庫明細表格
- 防護設備操作手冊
- 《中小學教師職業(yè)生涯規(guī)劃與專業(yè)發(fā)展》講座
- 牡丹籽油和文冠果油建設項目可行性研究報告模板備案審批
評論
0/150
提交評論