2017/3/11 14:41:41
使用MediaPlayer播放自定义提示音
这里要实现的是一个音频预览界面,需要实现的是点击一个音频就可以进行播放,点击另一个瞬间切换;
1.获取音频文件
这里将需要使用的音频文件放置在app/src/main/assets/tones/
中,然后再代码中进行获取:
AssetManager assets = getAssets();
try {
String[] tmpFiles = assets.list("tones");
} catch (IOException e) {
e.printStackTrace();
}
然后使用list的形式进行显示,重点是条目的点击播放。
2.点击播放音频
使用MediaPlayer播放音频
try {
player = new MediaPlayer();
assets = getAssets();
String path = "tones/" + fileNames[pos];
AssetFileDescriptor fileDescriptor = assets.openFd(path);
player.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(),
fileDescriptor.getLength());
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
player.start();
}
});
player.prepare();
//播放一次
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
player.stop();
}
});
} catch (IOException e) {
e.printStackTrace();
if (player != null) {
player.release();
player = null;
}
}
当然,在切换的时候,需要停止当前播放,开启下一段播放,那么在播放之前对上一段播放进行停止操作:
if (player != null) {
player.stop();
player.release();
player = null;
}
3.播放系统默认提示音
播放系统提示音,使用到的是RingToneManager
:
Uri notification= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
r = RingtoneManager.getRingtone(MyApplication.getInstance(),notification);
if (r != null) {
r.stop();
r.play();
}
网友评论