在 iPhone 模拟器上调用 AudioUnit 渲染回调,但在手机上却没有。

3
我有一个相对简单的设置,其中一个RemoteIO单元正在接收输入,进行一些处理,将其发送到输出,并将输出写入文件。目前,我只是在我的RemoteIO渲染回调函数内生成测试信号,所以我并不关心来自“实际”输入的任何内容。我的渲染回调被调用并在模拟器中工作得很好,但在手机上运行时根本没有被调用。有什么建议可以让我开始寻找问题的原因吗?我很乐意发布代码 - 只是不确定每个人想看什么...

1
请问能否展示设置音频单元的代码吗?同时,打开单元时是否有任何错误记录?这可能是因为您要求的格式在模拟器上有效,但在设备上无效。 - mattjgalloway
既然@mattjgalloway这么说了,我也记得一些单元在模拟器和设备上支持不同的格式。因此,评估并记录来自CoreAudio方法的所有错误以找到这个错误非常关键。 - DarkDust
2个回答

3

我知道以前的事情都是可以正常工作的,所以我开始仔细查看代码库。可是,我愚蠢地将我的 AudioSessionkAudioSessionProperty_AudioCategorykAudioSessionCategory_PlayAndRecord 改成了 kAudioSessionCategory_RecordAudio,并且忘记改回去了。希望这能帮助其他人避免犯同样愚蠢的错误...


0
刚刚一个小时前我也在解决同样的问题。问题是我在头文件中定义了AudioUnit类型的变量,所以当我使用AudioComponentInstance代替AudioUnit时,它开始在我的设备上工作了。所以可能是这个原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接