【发布时间】:2014-06-16 23:15:22
【问题描述】:
我正在编写一个应用程序,它应该混合磁盘中的几种声音并将生成的文件保存到磁盘。我正在尝试使用音频单元。 我使用Apple's MixerHost 作为我的应用程序的基础。它具有连接到远程 I/O 的多通道混音器。当我尝试向远程 IO 添加渲染回调时,出现错误 -10861“无法建立两个节点之间的尝试连接。”当调用 AUGraphConnectNodeInput(...)。 我做错了什么?混合和录制文件到磁盘的正确方法是什么?
回调存根:
static OSStatus saveToDiskRenderCallback(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
{
return noErr;
}
向远程 I/O 单元添加回调:
AURenderCallbackStruct saveToDiskCallbackStruct;
saveToDiskCallbackStruct.inputProc = &saveToDiskRenderCallback;
result = AUGraphSetNodeInputCallback (
processingGraph,
iONode,
0,
&saveToDiskCallbackStruct
);
此处出错:
result = AUGraphConnectNodeInput (
processingGraph,
mixerNode, // source node
0, // source node output bus number
iONode, // destination node
0 // desintation node input bus number
);
【问题讨论】: