教學(xué)課件第三次課件(媒體播放器)

上傳人:sha****en 文檔編號:23466850 上傳時間:2021-06-09 格式:PPT 頁數(shù):24 大小:815.50KB
收藏 版權(quán)申訴 舉報 下載
教學(xué)課件第三次課件(媒體播放器)_第1頁
第1頁 / 共24頁
教學(xué)課件第三次課件(媒體播放器)_第2頁
第2頁 / 共24頁
教學(xué)課件第三次課件(媒體播放器)_第3頁
第3頁 / 共24頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《教學(xué)課件第三次課件(媒體播放器)》由會員分享,可在線閱讀,更多相關(guān)《教學(xué)課件第三次課件(媒體播放器)(24頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、Lesson3媒體播放器第二階段 長沙華瑞IT培訓(xùn)學(xué)校 課堂回顧1. 如何讓控件動起來?2. 自定義控件的原理3. 自定義屬性的兩種方法4. 實(shí)現(xiàn)音量控件 長沙華瑞IT培訓(xùn)學(xué)校 多媒體簡介v多媒體是計算機(jī)和視頻技術(shù)的結(jié)合,實(shí)際上它是兩個媒體:聲音和圖像v音頻和視頻的播放,我們都會用到MediaPlayer這個類進(jìn)行播放 長沙華瑞IT培訓(xùn)學(xué)校 從源文件中播放1,在項(xiàng)目的res/raw目錄下,放置一個android支持的多媒體文件,如MP3,會在R文件中生成對應(yīng)的索引2,通過MediaPlayer.create(this, R.id.et_mp3)創(chuàng)建一個文件3,使用start播放 長沙華瑞IT培

2、訓(xùn)學(xué)校 核心代碼mediaplayer = MediaPlayer.create(this, R.raw.music02);try mediaplayer.start(); catch (IllegalStateException e) e.printStackTrace(); 注:將muisc02.mp3文件放入res/raw的文件夾中 長沙華瑞IT培訓(xùn)學(xué)校 從文件系統(tǒng)中播放1,實(shí)例化一個MediaPlayer2,MediaPlayer.setData方法調(diào)用(輸入文件所在路徑)3,調(diào)用MediaPlayer.prepare進(jìn)行準(zhǔn)備4,調(diào)用start進(jìn)行播放 長沙華瑞IT培訓(xùn)學(xué)校 核心代碼p

3、rivate void createMusicFromPath(String path) mediaplayer = new MediaPlayer();try mediaplayer.setDataSource(path);mediaplayer.prepare();mediaplayer.start(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); 注:將音頻文件放入在手機(jī)的sdcard,輸入路徑即可播放 長沙華瑞IT培訓(xùn)學(xué)校 播放網(wǎng)絡(luò)音樂1,獲取音樂鏈接地址A,通過地址創(chuàng)建Uri,通過

4、 MediaPlayer.create(this, uri)創(chuàng)建,獲取player對象B,new出MediaPlayer對象,通過MediaPlayer.setData(webPath)創(chuàng)建player對象,然后調(diào)用prepare();2,調(diào)用start方法進(jìn)行播放 長沙華瑞IT培訓(xùn)學(xué)校 音樂播放器 長沙華瑞IT培訓(xùn)學(xué)校 多媒體狀態(tài) 長沙華瑞IT培訓(xùn)學(xué)校 使用SeekBar實(shí)現(xiàn)控制播放位置功能1,在視圖xml中拖入SeekBar控件2,設(shè)置seekBar.setMax(mediaPlayer.getDuration()為媒體的最大長度3,實(shí)現(xiàn)控件的OnSeekBarChangeListener

5、接口4,實(shí)現(xiàn)onProgressChanged(/當(dāng)進(jìn)度狀態(tài)發(fā)生變化時候 SeekBar seekBar, int progress,/當(dāng)前的進(jìn)度 boolean fromUser)/是否由用戶操作導(dǎo)致public void onProgressChanged(SeekBar arg0, int progress, boolean isFromUser) if(isFromUser) mediaPlayer.seekTo(progress); 長沙華瑞IT培訓(xùn)學(xué)校 實(shí)現(xiàn)進(jìn)度條SeekBar自動移動效果/1,創(chuàng)建一個線程Runnable run = new Runnable() public v

6、oid run() / TODO Auto-generated method stub/獲取當(dāng)前播放音樂的位置if(mediaPlayer != null) int current = mediaPlayer.getCurrentPosition();progressBar.setProgress(current);if(mediaPlayer.isPlaying() progressHandler.postDelayed(run,100);/2,創(chuàng)建一個handler用于控制線程Handler progressHandler = new Handler();progressHandler.p

7、ost(run);/啟動線程progressHandler.postDelayed(run,100);/延時啟動線程progressHandler.removeCallbacks(run);/刪除指定的Runnable對象,使線程對象停止運(yùn)行。 長沙華瑞IT培訓(xùn)學(xué)校 停止,暫停,重播功能實(shí)現(xiàn)A,停止 1,首先判斷是否是playing調(diào)用player的stop方法2,同時要將還沒有執(zhí)行的線程從handler中移除progressHandler.removeCallbacks(run);3,將進(jìn)度條的seekbar的進(jìn)度設(shè)置為0B,暫停1,利用一個boolean變量判斷是否是pause狀態(tài)2,判斷

8、playing,調(diào)用play的pause方法,并且removeCallbacks3,如果是pause狀態(tài),則執(zhí)行start,并且執(zhí)行progressHandler.post方法C,重播 1,mediaPlayer.seekTo(0),2,progressBar.setProgress(0); 長沙華瑞IT培訓(xùn)學(xué)校 實(shí)現(xiàn)進(jìn)度條SeekBar緩存條效果/設(shè)置緩存更新事件mediaPlayer.setOnBufferingUpdateListener(new OnBufferingUpdateListener()/實(shí)現(xiàn)更新方法public void onBufferingUpdate(MediaPl

9、ayer arg0, int arg1) /在每次更新之后,設(shè)置緩存條的進(jìn)度progressBar.setSecondaryProgress(arg1*progressBar.getMax()/100);); 長沙華瑞IT培訓(xùn)學(xué)校 MediaPlayer的狀態(tài)A,停止 1,首先判斷是否是playing調(diào)用player的stop方法2,同時要將還沒有執(zhí)行的線程從handler中移除progressHandler.removeCallbacks(run);3,將進(jìn)度條的seekbar的進(jìn)度設(shè)置為0B,暫停1,利用一個boolean變量判斷是否是pause狀態(tài)2,判斷playing,調(diào)用play的p

10、ause方法,并且removeCallbacks3,如果是pause狀態(tài),則執(zhí)行start,并且執(zhí)行progressHandler.post方法C,重播1,mediaPlayer.seekTo(0),2,progressBar.setProgress(0); 長沙華瑞IT培訓(xùn)學(xué)校 核心代碼v mediaPlayer.reset();/重置為idle狀態(tài)v mediaPlayer.setDataSource(file.getAbsolutePath();/設(shè)置播放的文件v mediaPlayer.prepare();/緩沖v mediaPlayer.setOnPreparedListener(n

11、ew MyPreparedListener();/設(shè)置緩沖完成監(jiān)聽v mediaPlayer.pause();/暫停v mediaPlayer.start();/播放音樂v mediaPlayer.stop(); ();/停止v mediaPlayer.seekTo(progress);/設(shè)置播放進(jìn)度v mediaPlayer.release();/釋放關(guān)聯(lián)的資源 v progressHandler.postDelayed(run,100);/定時調(diào)用Runnable對象v progressHandler.post(run);/將Runnable對象發(fā)送到消息隊(duì)列中v progressHand

12、ler.removeCallbacks(run);/將run從消息隊(duì)列中移除 長沙華瑞IT培訓(xùn)學(xué)校 視頻播放器 SurfaceView控件 長沙華瑞IT培訓(xùn)學(xué)校 SurfaceView控件vSurfaceView可以直接從內(nèi)存或者DMA等硬件接口取得圖像數(shù)據(jù),是個非常重要的繪圖容器vSurfaceHolder用來操縱surface,處理它在Canvas上畫的效果和動畫,控制表面,大小,像素等 長沙華瑞IT培訓(xùn)學(xué)校 核心代碼SurfaceHolder surfaceHolder = surfaceView.getHolder();/surfaceView的控制對象surfaceHolder.se

13、tFixedSize(176, 144);/設(shè)置分辨率surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);/不使用surfaceview自身的緩沖機(jī)制,把得到的數(shù)據(jù)直接輸出surfaceHolder.setKeepScreenOn(true);/保持屏幕的亮度 /在播放前設(shè)置顯示畫面mediaPlayer.setDisplay(surfaceView.getHolder(); 長沙華瑞IT培訓(xùn)學(xué)校 VideoView的使用/獲取VideoView對象videoView = (VideoView) this.findVie

14、wById(R.id.videoView);/創(chuàng)建播放視頻的URIUri uri = Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()+/video.mp4);/設(shè)置URIvideoView.setVideoURI(uri);/uri/設(shè)置多媒體控制器videoView.setMediaController(new MediaController(this);videoView.start(); 長沙華瑞IT培訓(xùn)學(xué)校 SoundPoolandroid中可以用mediaplayer播放音樂,使用soundp

15、ool可以播一些短的反應(yīng)速度要求高的聲音,比如點(diǎn)擊時候的音效/1,創(chuàng)建SoundPoolsoundPool = new SoundPool(3,/同時播放的流的最大數(shù)量 AudioManager.STREAM_MUSIC,/ 流的類型,一般為STREAM_MUSIC0);/采樣率轉(zhuǎn)化質(zhì)量,當(dāng)前無效果,使用0作為默認(rèn)值 /2,載入音效int id = load(Context context, int resId, int priority) /從APK資源載入 /3,通過id播放音效 soundPool.play(soundMap.get(id),/音頻的id100, /左邊聲音大小100, /右邊聲音大小1, /優(yōu)先級別0, /循環(huán)次數(shù)1);/速率,1為正常速度 長沙華瑞IT培訓(xùn)學(xué)校 本章總結(jié)1. 如何使用MediaPlayer播放MP32. 多媒體有哪些狀態(tài)3. 使用seekBar4. 如何使用SurfaceView播放視頻? 長沙華瑞IT培訓(xùn)學(xué)校 作業(yè)1. 完成音樂播放器和視頻播放器 知識就是力量

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!