使用沙箱时,Core Audio似乎不起作用

问题描述 投票:1回答:3

我刚刚在OS X应用程序中启用了沙箱功能,现在我的Core Audio代码不起作用。特别是,当我调用AUGraphAddNode时,它返回错误invalidComponentID,并说“该操作无法完成”。不过,在此之前,其他一些Core Audio通话似乎也可以正常工作。

这似乎不是直接的沙箱违规,因为控制台中没有来自沙箱的任何消息,但是当我关闭沙箱时,它肯定可以工作。有人知道为什么会发生这种情况吗?我只能想象的是,也许它正在尝试读取我无权访问的文件,尽管我认为这会给我一个沙箱错误。

更新:

为了澄清,我尝试启用每个沙盒权利,但问题仍然存在。

我还缩小了范围。仅当我尝试添加组件类型为kAudioUnitType_MusicDevice和子类型为kAudioUnitSubType_DLSSynth的节点时,该调用才会失败。

更新2:

我想出了一种解决方法。如果我添加了临时例外权利以启用对用户整个主目录的读写访问,该错误将不再发生。这显然不是理想的,因此我正在继续寻找更好的选择。我试图通过为更具体的子目录添加权利来缩小所需的访问范围,但这没有用。

我刚刚在OS X应用程序中启用了沙箱功能,现在我的Core Audio代码不起作用。特别是,当我调用AUGraphAddNode时,它将返回错误invalidComponentID,仅表示“ ...

cocoa core-audio sandbox
3个回答
1
投票

我最近将遇到此问题的应用程序提交给了应用程序商店,但由于使用了我对问题的最新更新中提到的临时例外权利,该应用程序被拒绝了。有人指出this article讨论这个确切的问题。


0
投票

如果您使用Core Audio进行麦克风输入,请不要忘记将其添加到目标摘要和应用程序权利文件中的沙盒权利中。


0
投票

在已被沙盒化的音频单元主机应用中,可能会发生此错误。

© www.soinside.com 2019 - 2024. All rights reserved.