MediaPlayer播放不同來源的音頻文件

1、播放應用的資源文件(在/res/raw中的)

播放應用的資源文件需要兩步:
1:調用MediaPlayer的create(Context context,int resid)方法,加載指 定資源文件;
2:調用MediaPlayer的start()、stop()、pause()等控制播放方法;

實例代碼:

MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.sound);
mediaPlayer.start();

2、播放應用的原始資源文件

1:調用Context的getAsserts()方法,獲取應用的AssetManager;
2:調用AssetManager的openFd(String fileName)打開指定的原生資源,該方法返回AssetFileDescriptor ;
3:調用AssetFileDescriptor 的getFileDescriptor()、getStartOffset()、getLength()獲取音頻文件的FileDescriptor、開始位置、長度;
4:創建MediaPlayer對象,並調用MediaPlayer對象的setDataSource(FileDescriptor fd, long offset, long length)來裝載音頻資源;
5:調用MediaPlayer的prepare()準備音頻;
6:調用MediaPlayer的start(),stop(),pause()控制音頻的播放;

實例代碼:

AssetManager assetManager = getAssets();
AssetFileDescriptor afd = assetManager.openFd("music");
FileDescriptor fd = afd.getFileDescriptor();
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(fd,afd.getStartOffset(), afd.getLength());
mediaPlayer.prepare();
mediaPlayer.start();

3、播放外部存儲上的音頻文件

1:創建MediaPlayer對象,並調用MediaPlayer對象的setDataSource(String path)裝載指定的音頻文件;
2:調用MediaPlayer對象的prepare()方法準備音頻;
3:調用MediaPlayer對象的start()、stop()、pause()等方法控制音頻的播放;

實例代碼:

File file = new File("/mnt/sdcard/sound.mp4");
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(file.getAbsolutePath());
mediaPlayer.prepare();
mediaPlayer.start();

4、播放來自網絡的音頻文件

播放來自網絡的音頻文件有兩種方式:
1:直接調用MediaPlayer的靜態方法create(Context context, Uri uri);
2:調用MediaPlayer的setDataSource(Context context, Uri uri)裝載指定Uri對應的Uri文件;

以第二種方式播放來自網絡的音頻文件的步驟如下:
1:根據網絡上的音頻文件所在的位置創建Uri對象;
2:創建MediaPlayer對象,並調用MediaPlayer對象的setDatasetDataSource(Context context, Uri uri)方法裝載Uri對應的音頻文件;
3:調用MediaPlayer對象的prepare()方法準備音頻;
4:調用MediaPlayer對象的start()、stop()、pause()等方法控制音頻的播放;

實例代碼:

Uri uri = Uri.parse("http://127.0.0.1:8080/myserver/sound.mp4");
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(this, uri);
mediaPlayer.prepare();
mediaPlayer.start();
發佈了38 篇原創文章 · 獲贊 45 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章