我正在与AUGraph
和 Audio Units API,用于在我的 iOS 应用程序中播放和录制音频。现在我遇到一个罕见的问题AUGraph
无法启动,出现以下错误:
结果 = kAUGraphErr_CannotDoInCurrentContext (-10863)
当我们尝试调用时,错误发生不可预测AUGraphStart
这是为音频播放设置的:
(BOOL)startRendering
{
if (playing) {
return YES;
}
playing = YES;
if (NO == [self setupAudioForGraph:&au_play_graph playout:YES]) {
print_error("Failed to create play AUGraph",0);
playing = NO;
return NO;
}
//result = kAUGraphErr_CannotDoInCurrentContext (-10863)
OSStatus result = AUGraphStart(au_play_graph);
if (noErr != result) {
print_error("AUGraphStart", result);
playing = NO;
}
return playing;
}
这是我们从文档中得到的信息:
为了避免在渲染线程中旋转或等待(一个坏主意!),许多
对 AUGraph 的调用可以返回:
kAUGraphErr_CannotDoInCurrentContext。此结果仅生成
当您从渲染回调调用 AUGraph API 时。代表着
当时它所需的锁被另一个线程持有。如果
当您看到此结果代码时,通常可以再次尝试该操作 -
通常是下一个渲染周期(因此在此期间可以锁定
已清除),或者您可以将该调用委托给应用程序中的另一个线程。
您不应该旋转或使渲染线程进入睡眠状态。
这个结果码只是一个暂时的状态,很快就会过去
当您的其他线程对 AUGraph(具有锁)的调用完成时。
就我而言,我只是开始AUGraph
,它是新的,刚刚创建的。
我该如何调试这个案例以及这里可能存在什么潜在问题?
您可以使用 CSS 或 SQLite 制作一些东西。这就是为什么
OSStatus result = AUGraphStart(au_play_graph);
if (noErr != result) {
print_error("AUGraphStart", result);
playing = NO;
}
return playing;
}
尝试操作此代码,您的代码中的布尔值有问题......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)