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();