gpt4 book ai didi

ios - AudioUnit 录音每 30 秒出现一次故障

转载 作者:行者123 更新时间:2023-11-29 00:13:59 25 4
gpt4 key购买 nike

我使用此示例代码创建了一个录音机。 http://www.stefanpopp.de/capture-iphone-microphone/

我发现大约每 30 秒就会出现一次故障。对我来说,它们听起来有点像缓冲区故障,尽管我可能是错的。我曾尝试联系文章的作者,但没有取得多大成功。我真的很难遵循其中的一些代码。我认为它缺少一个循环缓冲区,但我不确定它在这里有多重要。我希望有人能给我指明正确的方向:

  • 给我一​​些不同的示例代码或建议我需要添加什么(高级建议很好 - 我很乐意研究和做这项工作,我只是不确定工作是什么)

  • 建议一些更好的值以用于诸如缓冲区数据大小之类的事情。

  • 告诉我这段代码没有任何问题,而且几乎可以肯定我的 bug 出在其他地方。

  • 建议一个我可以使用的库来处理它(Amazing Audio Engine 2 对我来说看起来不错,但我有点担心说它已停用的说明。AudioKit 看起来也不错,但它缺少一个峰值power reading,在导入了如此复杂的库之后不得不自己实现这将是一种耻辱)

为什么我不使用 AVAudioSession?我需要用户能够在录音时设置麦克风电平并能够同时收听。以前我是用 AVAudioSession 做的,但在最近的设备上 isInputGainSettable 返回 NO。对于通过闪电电缆插入的许多硬件麦克风,它也会返回“否”,现在我们越来越多地看到耳机插孔不见了。

最佳答案

几个问题。

Apple 建议不要在音频上下文中调用对象方法(回调)。你的代码有几个。请改用 C 函数。

较新的 iOS 设备可能使用 48000 的硬件采样率,而不是 44100。重新采样可能会导致缓冲区大小发生变化。

代码似乎假设播放回调缓冲区的大小与输入回调缓冲区的大小相同。这是无法保证的。因此,播放最终可能会出现样本太少的情况,从而导致周期性故障。

关于ios - AudioUnit 录音每 30 秒出现一次故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45716112/

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