android - 停止AudioTrack播放时间歇性单击

标签 android audio audiotrack

我在流媒体模式下使用AudioTrack。停止播放一小段wav文件后,大约有5-10次中的1次,听到咔嗒声。这让我发疯,因为我无法持续复制它。在调用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上看到了这一点。我将不胜感激任何建议。

    最佳答案

    流行可能是因为歌曲以很高的样本结束,然后突然变为0。这会引起“流行”噪音。尝试在0.01秒内使歌曲逐渐消失。

    从高采样到零音量的声音听起来像是:https://soundcloud.com/hertzdevil/dirac

    关于android - 停止AudioTrack播放时间歇性单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15652167/

    相关文章:

    java - 动画:缩放按钮以扩展到屏幕顶部

    android - setText使我的应用程序崩溃-inStream.read

    javascript - 如何确定音频文件扩展名可能是什么(Chrome,Android)?

    c++ - 将变量与音频文件同步

    android - 不同的android设备有不同的颜色

    java - openConnection() 或 connect() 这两个 API 中哪一个实际打开连接?

    audio - 黑莓录音示例代码

    java - Android:AudioTrack 无法正常工作

    android - 将 AudioTrack 流与节拍器的 UI 同步

    android - 使用 Android 的 AudioTrack