MediaPlayer提供了如下方法来指定装载相应的音频文件:
1、void setDataSource( String path):指定装载path路径所代表的文件。
2、void setDataSource(FileDescriptor fd, long offset , long length ):指定装载fd所代表的文件中从offset开始、长度为length的文件内容。
3、void setDataSource(FileDescriptor fd ):指定装载发的所代表的文件。
4、void setDataSource(Context context , Uri uri ):指定装载Uri所代表的文件。
执行上面的setDataResource()方法之后,MediaPlayer并未真正去装载那些音频文件,还需要调用MediaPlayer的prepare()方法去准备音频,所谓“准备”,就是让MediaPlayer真正去装载音频文件。
使用已有的MediaPlayer对象装载“下一首”歌曲的代码模板为:
try {
mPlayer.reset();
//装载下一首歌曲
mPlayer.setDataSource(“/mnt/sdcard/next.mp3”);
//准备声音
mPlayer.prepare();
//播放
mPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
除此之外,MediaPlayer还提供了一些绑定事件监听器的方法,用于监听MediaPlayer播放过程中所发生的特定事件,绑定事件监听器的方法如下:
setOnCompletionListener(MediaPlayer.OnCompletionListener listener):为MediaPlayer的播放完成事件绑定事件监听器。
setOnErrorListener(MediaPlayer.OnErrorListener listener):为MediaPlayer的播放错误事件绑定事件监听器。
setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener listener):当MediaPlayer调用prepare()方法时触发该监听器。
setOnPreparedListener(MediaPlayer.OnPreparedListener listener):当MediaPlayer调用seek()方法时触发该监听器。