项目场景:
项目场景:使用AudioTrack代替SoundPool播放wav文件,原因见问题描述:
在客户更新了一个wav音效后,发现声音播放速度增加了好几倍,出现了类似娱乐节目快进的搞笑效果,没笑除非憋不住!!!。
//系统通过Api能调整一下播放速率,但是AudioTrack没有提供播放速度的接口。
AudioTrack mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
44100, AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
mMinBufferSize, AudioTrack.MODE_STREAM);
原因分析:
既然替换了音频出现了问题,那么重点分析了一下新的音频文件,使用GoldWave操作一波,发现之前使用采样率44100Hz,新的文件使用16000Hz,代码更换采样率后正常。
解决方案:
如果项目要使用wav最后提前确定并统一采样率,防止不必要的问题和额外工作量产生。