混合 CoreAudio 和 OpenAL 代码时,iOS 麦克风采样在设备上不起作用
我尝试编写一个应用程序,使用 http://code.google 中的代码对麦克风进行采样。 com/p/ios-coreaudio-example/(核心音频), 并使用 https://github.com/hollance/SoundBankPlayer (OpenAL) 中的代码播放声音。
在模拟器上运行时效果很好,但在真实设备上测试时 - 麦克风采样不起作用(IosAudioController 中的 RecordCallback 永远不会被调用)。
当我禁用 SoundBankPlayer 代码(不实例化新的 SoundBankPlayer,因此不使用 OpenAL 代码)时,麦克风采样工作得很好。
在同一项目中混合 OpenAL 和 Core Audio 代码是否存在已知的限制?如果是这样 - 有解决方法吗?如果不是 - 还有什么问题?
I tried writing an app that samples the microphone using code from http://code.google.com/p/ios-coreaudio-example/ (Core Audio),
and plays sounds using code from https://github.com/hollance/SoundBankPlayer (OpenAL).
This works fine when running on simulator, but when testing on a real device - microphone sampling doesn't work (the recordingCallback in the IosAudioController never gets called).
When I disable the SoundBankPlayer code (do not instantiate a new SoundBankPlayer, therefore no OpenAL code is used), the microphone sampling works just fine.
Is there a known limitation of mixing OpenAL and Core Audio code in the same project? If so - is there a workaround? If not - what else could the problem be?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,事实证明,在 OpenAL 代码中初始化音频会话时,我必须将音频会话类别从
kAudioSessionCategory_MediaPlayback
更改为kAudioSessionCategory_PlayAndRecord
。OK, turns out I had to change the audio session category from
kAudioSessionCategory_MediaPlayback
tokAudioSessionCategory_PlayAndRecord
when initializing the audio session in the OpenAL code.