天天看点

Android AudioTrack 爆音问题记录项目场景:问题描述:原因分析:解决方案:

项目场景:

通过AudioTrack播放wav音效文件

问题描述:

声音开头有爆音,“嗒”一声非常明显:

原因分析:

经过修改Buffer大小,采样率都不起作用,最后沉下心来查找资料,最终从wav文件格式入手,找到原因:

  • wav文件格式包含文件头和文件体。
  • 代码中从文件读取到buffer播放,没有跳过文件头。

有人说了,无图不真相,抄了一个图做纪念,方便查看。

Android AudioTrack 爆音问题记录项目场景:问题描述:原因分析:解决方案:

解决方案:

AudioTrack的write方法跳过头部,仅播放data域。

//先确定声道,采样率,播放类型,位数,根据实际情况进行调整,然后创建AudioTrack。
mAudioTrack.write(newDataBuffer, 44, newDataBuffer.length-44);
           

呜谢:

AudioTrack简单简介之四:wav去掉文件头之解决爆音

WAV文件格式详解