因最近项目需要多个音频文件前后拼接播放,所幸较大致看了下android常用播放音频的几种方式。
MediaPlayer类--(常用于播放长音频)缺陷-音频播放前后延迟太高(实验前后拼接播放时间为10s,正常播放整段语音时间为6s)
SoundPool类--(常用播放游戏,点击声音等短音频)缺陷-需要提前加载数据,没有播放完毕监听
AudioTrack类--
MODE_STREAM流播放模式(可以边读取边播放,大音频必用):
/** * -- 流式播放音频(用于播放大音频) */void palyStream() { try { mFile = getAssets().open("raw/" + rawFath); } catch (Exception e) { } if (mTrack == null && mFile != null) { try { bufsize = AudioTrack.getMinBufferSize(8000, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT); mTrack = new AudioTrack(AudioManager.STREAM_MUSIC , 8000, //每秒8K