gpt4 book ai didi

iphone - iPhone 模拟器音频仅适用于 44100Hz、22050Hz 和 11025Hz

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

有人使用模拟器在 AudioUnit 级别处理 8kHz 音频吗?

iPhone 模拟器音频仅适用于 44100Hz、22050Hz 和 11025Hz。否则它会奇怪地失败。

我在 iPhone 模拟器中录制音频时遇到问题。该代码在硬件设备上运行良好,但在模拟器中奇怪地失败。

我正在处理 AudioUnit 级别,并将采样率(通过 Audio Session 属性)设置为 8000Hz。在硬件上工作正常,但在模拟器上,渲染回调要求一个适当大小的数据 block ,然后每 11.6 毫秒回调一次,要求一个字节。

我尝试将采样率设置为 44100/4 (11025Hz),效果很好。所以我尝试将 Audio Session 采样率设置为 11024,但它失败了。与 11026 相同。11025 有效。

我的猜测是模拟器的音频代码中有一个错误。我认为它内部必须有一个四分之一秒长的缓冲区,并且它无法处理采样率不是其倍数的情况。

任何人都可以在模拟器中用自己的代码尝试这个吗?尝试 11024、11025 和 11026 的采样率,看看是否只有 11025 有效?

更新:如果我要求 11024,它会给我 8000,但渲染回调会继续传递 ioData,只要求单个帧(1 字节)。当我要求 8000Hz 时,行为相同。

更新2:当我在 AudioQueue API 级别编程时,模拟器也可以正常工作。它在那里处理 8kHz。它似乎只是在 AudioUnit API 级别搞砸了。

最佳答案

据我所知,当您要求模拟器的远程 I/O 单元在 8kHz 模式下工作时,模拟器会进入功能障碍模式。或 44100/4 倍数以外的任何模式。

再说一次,这并不是说它拒绝我的格式或建议更好的格式。问题是它假装同意,然后进入一种奇怪的模式,一次请求一两个字节,可能是因为一些栅栏错误。

如果我将单元子类型设置为 VoiceProcessingIO,8kHz 工作正常,但麦克风一侧每隔几次读取就会变得有点麻烦。

所以问题是模拟器的远程 I/O 单元声称支持 8kHz,但只有将其配置为 VoiceProcessing 子类型时它才有效。

关于iphone - iPhone 模拟器音频仅适用于 44100Hz、22050Hz 和 11025Hz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5543767/

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