日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

深入Android MediaPlayer的使用方法詳解

 落雨不悔 2019-04-23

MediaPlayer使用技巧

  在使用MediaPlayer的使用過程中,有個小技巧需要說明一下:

  1、在使用start()播放流媒體之前,需要裝載流媒體資源。這里最好使用prepareAsync()用異步的方式裝載流媒體資源。因為流媒體資源的裝載是會消耗系統(tǒng)資源的,在一些硬件不理想的設(shè)備上,如果使用prepare()同步的方式裝載資源,可能會造成UI界面的卡頓,這是非常影響用于體驗的。因為推薦使用異步裝載的方式,為了避免還沒有裝載完成就調(diào)用start()而報錯的問題,需要綁定MediaPlayer.setOnPreparedListener()事件,它將在異步裝載完成之后回調(diào)。異步裝載還有一個好處就是避免裝載超時引發(fā)ANR((Application Not Responding)錯誤。


  1. 01.1 mediaPlayer = new MediaPlayer();
  2. 02.2 mediaPlayer.setDataSource(path);
  3. 03.3 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  4. 04.4
  5. 05.5 // 通過異步的方式裝載媒體資源
  6. 06.6 mediaPlayer.prepareAsync();
  7. 07.7 mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
  8. 08.8 @Override
  9. 09.9 public void onPrepared(MediaPlayer mp) {
  10. 10.10 // 裝載完畢回調(diào)
  11. 11.11 mediaPlayer.start();
  12. 12.12 }
  13. 13.13 });

2、使用完MediaPlayer需要回收資源。MediaPlayer是很消耗系統(tǒng)資源的,所以在使用完MediaPlayer,不要等待系統(tǒng)自動回收,最好是主動回收資源。

  1. 1.1 if (mediaPlayer != null && mediaPlayer.isPlaying()) {
  2. 2.2 mediaPlayer.stop();
  3. 3.3 mediaPlayer.release();
  4. 4.4 mediaPlayer = null;
  5. 5.5 }
3、使用MediaPlayer最好使用一個Service來使用,并且在Service的onDestory()方法中回收MediaPlayer資源,實際上,就算是直接使用Activity承載MediaPlayer,也最好在銷毀的時候判斷一下MediaPlayer是否被回收,如果未被回收,回收其資源,因為底層調(diào)用的native方法,如果不銷毀還是會在底層繼續(xù)播放,而承載的組件已經(jīng)被銷毀了,這個時候就無法獲取到這個MediaPlayer進而控制它。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多