[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]