【问题标题】:AVAudioPlayer 'ticks' when stopped or resumedAVAudioPlayer 在停止或恢复时“滴答”
【发布时间】:2010-10-19 23:44:44
【问题描述】:

我有一个大约 2 分钟的 .aifc 文件,我正在使用 AVAudioPlayer 播放。当我发送stop 时,我听到一个短促的“滴答声”。当我发送play 之后,我再次听到滴答声。

在发送playstop 方法之前,我尝试将volume 设置为0,但没有成功。

滴答声在某种程度上类似于您将扬声器与音频源断开时听到的声音,但非常短(当然声音也小得多)。

关于如何摆脱蜱虫的任何想法?

【问题讨论】:

  • 您是否尝试过使用其他文件格式?我有那个勾号并改为mp3和wav。从那以后就没有问题了。
  • 不幸的是,这并没有帮助。

标签: iphone objective-c cocoa-touch xcode avaudioplayer


【解决方案1】:

任何平台上的音频播放机制在停止和重新启动音频时都会产生这样的滴答声是很正常的。为了避免这个问题,不要通过调用stop 突然停止播放,您应该首先在短时间内将音量从1.0 降低到0.0(几毫秒就足够了),然后stoppause .当您恢复播放时,您可以通过将音量从 0.0 提高到 1.0 来反转该过程。

抱歉,我对 iPhonistics 了解的不够多,无法告诉您如何进行这样的基于计时器的操作。我很惊讶 AVAudioPlayer 库还没有这样做,但我肯定还有其他音频 API。

更新:再想一想,算了。用计时器降低音量是一个可怕的想法,而且行不通。您需要一个比可能的更高分辨率的计时器来避免步进效应,这会产生一系列滴答声和爆裂声,而不仅仅是一个。

使用其他 API。

【讨论】:

    【解决方案2】:

    通过将音量设置为 0.0 而不调用 stop,然后在短时间内调用 stop 解决了问题。一点也不打勾!

    【讨论】:

    • 这很有趣。 AVAudioPlayer 必须足够智能,才能逐渐降低音量,而不是瞬间降低。
    猜你喜欢
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    相关资源
    最近更新 更多