中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Android平臺下開發多媒體軟件MediaPlayer

發布時間:2021-11-11 16:16:22 來源:億速云 閱讀:140 作者:柒染 欄目:移動開發

怎么在Android平臺下開發多媒體軟件MediaPlayer,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

現在將介紹一下在Android平臺下如何開發多媒體軟件MediaPlayer。MediaPlayer可以用來播放視頻和音頻、流媒體。MediaPlayer的生命周期如下圖:

怎么在Android平臺下開發多媒體軟件MediaPlayer

從MediaPlayer的生命周期圖,可以看出使用MediaPlayer不是很復雜。

最簡單的流程:初始化->resrt()->setDataSource()->prepare()->start()->……只要簡單的幾步,就可以播放音頻文件了。

來看看一個播放音頻的例子吧,看代碼和注釋吧……

1: private Handler handler = new Handler() {   2:     3:         public void handleMessage(Message msg) {   4:             //更新進度條   5:             progressBar.setProgress(progressState);   6:         };   7:     };   8:     9: /**  10:      * 播放  11:      *   12:      * @param filePath  13:      *            文件路徑  14:      */  15:     private void playMusic(String filePath) {  16:         try {  17:             progressState = 0;  18:             progressBar.setProgress(0);  19:             // 重置  20:             mediaPlayer.reset();  21:             // 設置數據源  22:             mediaPlayer.setDataSource(filePath);  23:             // 準備播放  24:             mediaPlayer.prepare();  25:             // 獲取播放時長  26:             length = mediaPlayer.getDuration();  27:             progressBar.setMax(length / 1000);  28:             // 播放  29:             mediaPlayer.start();  30:             new Thread(new ProcessBarRefresh()).start();  31:             // 設置播放完畢監聽  32:             mediaPlayer.setOnCompletionListener(new OnCompletionListener() {  33:                 @Override  34:                 public void onCompletion(MediaPlayer mp) {  35:                     nextMusic();  36:                 }  37:             });  38:    39:         } catch (Exception e) {  40:             displayToast(e.getMessage());  41:         }  42:     }  43:       44:     /**  45:      * 更新進度條  46:      * @author 張漢國  47:      */  48:     class ProcessBarRefresh implements Runnable{  49:    50:         @Override  51:         public void run() {  52:             while(isPlaying){  53:                 progressState = mediaPlayer.getCurrentPosition()/1000;  54:                 handler.sendMessage(handler.obtainMessage());  55:             }  56:         }  57:           58:     }

怎么在Android平臺下開發多媒體軟件MediaPlayer

怎么在Android平臺下開發多媒體軟件MediaPlayer

以上只是一個簡單的實例,要開發一個播放器除了UI需要下功夫外,還得注意不少細節東西。

Android中音樂播放是一個后臺進程,以上代碼當調用 onStop()->onCreate() 的時候會重復加載播放列表,造成列表重復。這就需要用到 onSaveIntanceState(),這樣子在onCreate()里面初始化播放列表的時候先判斷 Bundle 是否為空,是否能拿到播放列表,如果拿不到在重新初始化。

再者Android自身也提供一個MediaStore這樣一個Provider的屬性對象供我們開發利用。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉义县| 德庆县| 屏东市| 巴彦县| 富民县| 枝江市| 临高县| 石棉县| 敦化市| 星座| 大冶市| 永济市| 石屏县| 太谷县| 封开县| 囊谦县| 玉环县| 尤溪县| 开化县| 林口县| 临江市| 青田县| 瓦房店市| 宁津县| 定南县| 宁德市| 开原市| 民勤县| 泸州市| 太仓市| 湟中县| 蓬莱市| 阿图什市| 博爱县| 卓尼县| 衡山县| 中卫市| 瑞安市| 仁怀市| 嘉义县| 寿阳县|