成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

移動開發 Android
本文將向各位介紹在Android平臺下開發多媒體軟件MediaPlayer,MediaPlayer可以用來播放視頻和音頻、流媒體。

在前文中我們介紹了在Ubuntu下建立Eclipse的Android開發環境,我們現在將介紹一下在Android平臺下如何開發多媒體軟件MediaPlayer。MediaPlayer可以用來播放視頻和音頻、流媒體。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:     }

 

 

 

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

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

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

【編輯推薦】

  1. 在Ubuntu下建立Eclipse的Android開發環境
  2. Intent,Android應用核心探秘
  3. Android應用程序開發的四個重要組成部分
責任編輯:張攀 來源: cnblogs
相關推薦

2017-03-01 14:01:31

android多媒體音樂代碼

2011-04-02 11:11:44

windows安裝MRTG

2013-12-17 13:29:04

iOS開發多媒體

2013-12-17 11:18:53

iOS開發多媒體API

2009-12-22 16:29:51

Linux多媒體軟件

2011-08-31 10:51:39

MTKAndroid 開發

2011-09-26 10:46:32

Android云計算開發

2011-08-02 10:36:02

iOS開發 SDK 多媒體

2010-08-01 16:20:29

Android

2013-08-28 16:08:19

多媒體Windows8.1

2024-06-07 14:13:39

2010-08-01 15:29:04

AndroidDalvik

2010-01-27 13:52:15

Android多媒體框

2010-01-27 16:21:29

Android多媒體播

2011-07-06 14:32:52

Mac XCode

2017-08-09 16:27:59

LinuxWMware虛擬機

2009-08-30 15:12:34

ODULinuxUnix平臺

2015-01-15 13:42:27

易谷網絡NICE

2011-06-09 10:07:28

Qt phonon

2010-06-30 10:38:05

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久久久毛片 | 福利视频一区 | 日韩国产中文字幕 | 久久久999免费视频 999久久久久久久久6666 | 精品久久久久一区二区国产 | 天天操夜夜看 | 久久久久无码国产精品一区 | 国产精品久久久久久吹潮 | 在线观看www| 一区二区三区韩国 | 婷婷综合网 | 成人在线免费网站 | 免费在线色 | 日韩在线国产 | 欧美三区在线观看 | 成人区精品一区二区婷婷 | 亚洲精品久久久久久一区二区 | 亚洲a视频 | 国产ts人妖系列高潮 | 亚洲福利视频网 | 91在线电影 | 91素人| 亚洲国产91 | 在线观看av网站 | 国产成人精品久久二区二区91 | 精品九九九 | 日日摸日日碰夜夜爽2015电影 | 国产欧美一区二区三区在线看 | 美日韩视频 | 精品视频免费 | 国产精品毛片一区二区三区 | ririsao久久精品一区 | 欧美日韩国产一区二区三区 | 玖玖综合在线 | 色婷婷av99xx | 中文字幕一区在线观看视频 | 亚洲精品一区二区三区 | 日韩视频一区二区三区 | 91精品国产一区二区三区动漫 | 韩三级在线观看 | 狠狠躁夜夜躁人人爽天天高潮 |