天天看點

Android 之 使用MediaPlayer播放音頻

[size=small][color=olive][b][size=small][color=olive][b]1、 Android 中的多媒體播放都是由MediaPlayer類進行處理的,通過MeidaPlayer可以播放各種

多媒體格式的音頻以及視訊檔案,檔案位置如下:

* 存儲在應用程式内部的資源;

* 本地資源;

* Content Provider 提供的資源;

* 來自網絡的URI 流中的資源;

2、 Android 中提供了常見的音頻編碼、解碼機制;

* 支援的音頻格式有:mp3 wav 3gp;

* 支援的視訊格式有:mp4 3gp;

3、 使用MediaPlayer 播放多媒體的步驟:

* 對MediaPlayer 進行初始化工作;

* 讓MediaPlayer 執行個體完成準備播放;

* 開始播放;

* 在播放時進行暫停,停止,以及定位到某點播放;

* 播放完成;

小貼士:

* Android 僅支援有限個數的同步MediaPlayer對象,則:播放完成之後要注意對MediaPlayer對象

進行釋放;mediaPlayer.release();

* 資源檔案在應用中應該放在res/raw 目錄中,該目錄不會被編譯,能生成資源ID , 可以

通過:Resource.openRawResource(int id); 來擷取二進制輸入流;

4、音頻播放有兩種方式:

* 方式一:通過對MediaPlayer 執行個體進行setDataSource 方法,可以接受一個檔案路徑,ContentProvider提供的URI,網絡URL 路徑

java代碼如下:[/b][/color][/size]

/* 獲得MeidaPlayer對象 */
		MediaPlayer mediaPlayer = new MediaPlayer();

		/* 得到檔案路徑 *//* 注:檔案存放在SD卡的根目錄,一定要進行prepare()方法,使硬體進行準備 */
		File file = new File(Environment.getExternalStorageDirectory(),"aa.mp3");

		try{
			/* 為MediaPlayer 設定資料源 */
			mediaPlayer.setDataSource(file.getAbsolutePath());

			/* 準備 */
			mediaPlayer.prepare();

		}catch(Exception ex){
			ex.printStackTrace();
		}
           

[size=small][color=olive][b] * 方式二:通過create()方法傳回MediaPlayer對象,通過此方式不需要prepare()工作,create()過程中該工作被完成;

java代碼如下:[/b][/color][/size]

/* 從res/raw 資源中擷取檔案 */
		mediaPlayer = MediaPlayer.create(this,R.raw.sky);

		/* 根據URI:建立 */
		//mediaPlayer = MediaPlayer.create(this, Uri.parse("/mnt/sdcard/aa.mp3"));

		/* 網絡URI流 */
		//mediaPlayer = MediaPlayer.create(this, Uri.parse("http://www.sunzone.com/aa.mp3"));
           

[size=small][color=red][b]

5、MediaPlayer 的缺點:

* (1)資源占用量較高,延遲時間較長。

* (2)不支援多個音頻同時播放[/b][/color][/size]

[color=red]。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。[/color]

[size=small][color=green][b]代碼:[/b][/color][/size]