Audio Stream
Android为不同的应用场合定义了不同的Audio Stream: Voice Call, Ring, Music,Alarm, Notification, DTMF。 这些AudioStream是相互独立的,所以也有各自的音量
使用
最重要的类是 MediaPlayer
,获取、解码、播放
播放 res/raw 中的文件 举个🌰
MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1);
mediaPlayer.start(); // no need to call prepare(); create() does that for you
异步准备
可能需要比较长的时间,media 需要获取资源和解码,最好不要放在 UI 线程。
此时可以使用prepareAsync()
方法,这个方法在后台运行,当准备工资就绪之后在MediaPlayer.OnPreparedListener
返回,可以在回调函数setOnPreparedListener()
中设置
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// TODO: 15/10/27
}
});