停止AudioTrack播放时间歇性点击

时间:2013-03-27 04:54:43

标签: android audio audiotrack

我在流媒体模式下使用AudioTrack。在我停止播放wav文件的一小段内容后,大约有5-10次听到咔哒声。它让我发疯,因为我不能一直重现它。在调用AudioTrack.release()之前,我尝试了对AudioTrack.flush(),AudioTrack.pause()和AudioTrack.stop()的各种调用组合。我也试过调用AudioTrack.setStereoVolume()并传入AudioTrack.getMinVolume()的结果。没有任何效果。

一些观察结果:

  • 似乎只有在我播放wav文件的一小部分时才会发生。当我播放超过3秒的音频时,我无法重现它。
  • 偶尔,AudioTrack.write()在写完音频数据结束时返回-22。我没有在Javadoc中看到-22的规范。此外,这种情况并不总是与点击一致。
  • 即使重播wav文件的相同部分,点击也不能始终如一地重现。
  • 咔哒声可以来自右扬声器或左扬声器,但不能同时发出。

我在运行Android 4.0.3的Acer Iconia A500上看到了这一点。我很感激任何建议。

1 个答案:

答案 0 :(得分:0)

流行歌曲可能是因为歌曲以非常高的样本结束,然后突然变为0.这会引起“砰”的声音。尝试在0.01秒的时间内将歌曲淡出。

从高样本到0音量的流行音听起来像这样:https://soundcloud.com/hertzdevil/dirac