CoreAudio Input Render 回调从外部音频接口 Mac OS 10.14 Mojave 渲染所有 0
Posted
技术标签:
【中文标题】CoreAudio Input Render 回调从外部音频接口 Mac OS 10.14 Mojave 渲染所有 0【英文标题】:CoreAudio Input Render callback renders all 0's from external audio interface Mac OS 10.14 Mojave 【发布时间】:2018-12-17 16:04:48 【问题描述】:当我的 Mac 在 10.11 上时,我正在处理一个 CoreAudio 项目,我使用 CAPlayThroughExample (https://developer.apple.com/library/archive/samplecode/CAPlayThrough/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004443-Intro-DontLinkElementID_2) 并仅修改了输入和输出渲染函数的一些片段以访问不同的缓冲区流。此代码适用于 Mac OS 10.11、10.12 和 10.13。对于 10.14,从我的外部音频接口播放声音时,完全没有声音。当我从 Input Proc 记录一些样本时,缓冲区都是 0.0
的。所以我将我的 mac 降级到 10.13 并且相同的代码有效。我环顾四周,用谷歌搜索了所有内容,但似乎在苹果网站上找不到任何官方资源,以查看是否有任何 API 更改。
【问题讨论】:
【参考方案1】:在 10.14 上,您需要将 NSMicrophoneUsageDescription
添加到 Info.plist
文件。更多信息here。
【讨论】:
嘿,谢谢你的建议。你发给我的文章很棒。我添加了麦克风权限,但我仍然得到同样的东西。有趣的是,文章提到如果您收到此错误消息Unable to load Info.plist exceptions (eGPUOverrides)
,则表明该问题有问题。我将不得不对此进行进一步调查
因此链接中的示例说将其添加到 plist 并添加验证代码。我按照示例和步骤请求授权,但现在输入rendercall back中的音频缓冲区列表为空以上是关于CoreAudio Input Render 回调从外部音频接口 Mac OS 10.14 Mojave 渲染所有 0的主要内容,如果未能解决你的问题,请参考以下文章
Core Audio - CARingBuffer 读取音频文件进行回调
OSX:用于设置 IO 缓冲区长度的 CoreAudio API?