AVAudioPlayer 多重声音嘈杂

Posted

技术标签:

【中文标题】AVAudioPlayer 多重声音嘈杂【英文标题】:AVAudioPlayer multiple sounds noisy 【发布时间】:2012-07-02 23:14:08 【问题描述】:

由于 ios 中的系统声音播放器一次只能播放一种声音,我正在使用 AVAudioPlayer。但是,如果我尝试使用具有相同声音文件的两个单独的 AVAudioPlayer 播放两个相同的声音,听起来会很吵。

如果用户点击,我希望能够快速连续播放某种声音,并让它听起来悦耳,没有噪音。

是否建议为同一个声音创建两个 AVAudioPlayer 实例,或者只是停止播放声音?如果我停止声音,当我快速点击按钮时,我仍然会听到静态反馈声音。如果我等待静音,然后在清除后点击按钮,但是当我继续点击它时,它会超载或其他什么。

无论如何,只是想获得一个非常简单的声音,以便快速连续播放并且听起来不错。

感谢任何反馈。

【问题讨论】:

这个话题AVPlayer noise issue after playing a while 相关吗? [1]: 我认为它们是相关的。我记得这个问题也存在于设备上,而且可能更糟。似乎声音水平会达到最大值并突然中断。我将在下面添加一个答案。 我仍在测试,但我已经开始停用会话并在剪辑之间重新激活。从那以后,我在设备上没有遇到过问题。所以我进一步怀疑,在我的例子中,它要么是模拟器,要么是数据流。 【参考方案1】:

我通过使用相同的声音文件创建 2-3 个 AVAudioPlayer 解决了这个问题(作为一种解决方法)。在每种“播放”方法中,我都会检查第一个声音是否仍在播放。如果是,则播放第二个版本,依此类推。这对我来说似乎很有效。

- (void)playUndo

    if ([self isSoundMuted]) return;

    if ([[self undoPlayer] isPlaying])
    
        [[self undoPlayerTwo] play];
    
    else
    
        [[self undoPlayer] play];
    

【讨论】:

以上是关于AVAudioPlayer 多重声音嘈杂的主要内容,如果未能解决你的问题,请参考以下文章

AVAudioPlayer 不播放音频文件 - swift

静音按钮不会静音 AVAudioPlayer

AudioRecord 增益控制获得嘈杂的声音

声音 AVAudioPlayer 不工作

使用 AVAudioPlayer 没有声音

使用 AVAudioPlayer 在后台播放声音序列