一、先放张图,MediaPlayer的生命周期图如下:
二、mediaPlayer方法
setDataSource() //设置要播放的音频文件的位置
prepare() //在开始播放之前调用这个方法完成准备工作
start() //开始或继续播放音频
pause() //暂停播放音频
reset() //将MediaPlayer对象重置到刚刚创建的状态
seekTo() //从指定的位置开始播放视频
stop() //停止播放音频,调用这个方法后的MediaPlayer对象无法再播放音频
release() //释放掉与MediaPlayer对象相关的资源
isPlaying() //判断当前MediaPlayer是否正在播放音频
getDuration() //获取载入的音频文件的时长
三、下面开始干活了!
1.在main文件夹下新建assets文件夹,把音频文件放在assets文件夹内。这里要注意assets的位置要放对。
2.代码实现,用mediaPlayer播放音频
private MediaPlayer player;
//省略部分代码.....
@Override
public void onClick(View view) {
if (view.equals(mBinding.btnStart)){
try {
if (player ==null){//如果player为空,则创建并设置音频资源
player = new MediaPlayer();
AssetFileDescriptor afd = getAssets().openFd("ring.m4a");
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
player.prepare();
player.start();
}else if (player.isPlaying()){//如果播放中,则停止,重新播放
player.stop();
player.prepare();
player.start();
}else {//否则开始播放音频
player.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
protected void onDestroy() { //当前Activity销毁时,停止正在播放的音频,并释放MediaPlayer所占用的资源
if (player.isPlaying()) { //如果音频处于播放状态
player.stop(); //停止音频的播放
}
player.release(); //释放资源
super.onDestroy();
}