gpt4 book ai didi

iphone - 麦克风和扬声器反馈

转载 作者:行者123 更新时间:2023-12-01 19:26:07 25 4
gpt4 key购买 nike

我有一个使用 Core Audio 音频单元的 iPad 应用程序(调谐器)。它从麦克风读取信号并进行处理。它不会将声音回声到扬声器。

不幸的是,在不同的时间,信号实际上会反馈并从扬声器中发出 - 响亮且有点相位。我没有从麦克风到扬声器建立任何连接 - 但它会产生麦克风以某种方式“打开”的错觉。这不是一个直接的信号——它被切碎了,需要你在它发生之前发出一些响亮的声音。

我担心这与cpu过载或其他东西有关。我认为回调没有落后。如果我将调试语句放入回调中,当我关闭音频单元时它们似乎停止了......这带来了另一个奇怪之处。在某些时候,即使音频单元已停止,反馈仍会从麦克风到扬声器,因此必须关闭应用程序并将其从后台处理队列中删除,然后才能停止不间断的噪音。

奇怪的是,这并不是每次都发生在每个测试人员身上,但它确实经常发生,足以引起轰动。

最佳答案

如果您的 RemoteIO 回调太慢和/或您的应用程序崩溃并停止处理音频回调,RemoteIO 音频缓冲区可能会被回收,这可能会导致您的一些旧播放缓冲区,甚至可能是记录缓冲区,最终重复或重复在下溢的音频 channel 中。测试这一点的一种方法是在回调中注释掉所有处理代码(和调试打印,这也可能太慢),看看这是否解决了你的“反馈”问题。

尝试在 RemoteIO 记录和播放回调中只进行简单的缓冲区复制和/或其他低开销的快速处理。不要在远程回调内部处理数据,而是在回调外部握手、安排或排队稍后要完成的工作。

如果您的应用程序能够以某种方式检测到它无法跟上,它应该停止 RemoteIO 音频单元 (AudioOutputUnitStop)。

在完成每个记录缓冲区之后,在退出每个记录回调之前,还可以尝试将每个记录缓冲区的数据归零。有报道称,这可能有助于修复一些非常旧的 iPhoneOS 版本中的错误。

关于iphone - 麦克风和扬声器反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7489648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com