gpt4 book ai didi

ios - 向 AVAudioEngine 添加输入回调

转载 作者:可可西里 更新时间:2023-11-01 05:43:40 30 4
gpt4 key购买 nike

我正在尝试向 AVAudioEngine 的 inputNode 添加一个输入回调,但它从未被调用。

希望我可以使用 AVAudioEngine 来管理 iOS 和 OS X 的基本 AUGraph,并且我可以在两者之间运行我自己的代码。我也试过在输入节点上安装一个 tap,但我无法更改缓冲区长度。

我制作了一个单一 View iOS 应用程序并将此代码放入 viewDidLoad:

_audioEngine = [AVAudioEngine new];
_inputNode = _audioEngine.inputNode;
_outputNode = _audioEngine.outputNode;

AURenderCallbackStruct inputCallback;
inputCallback.inputProc = inputCalbackProc;
inputCallback.inputProcRefCon = (__bridge void *)(self);


AudioUnitSetProperty(_inputNode.audioUnit,
kAudioOutputUnitProperty_SetInputCallback,
kAudioUnitScope_Global,
0,
&inputCallback,
sizeof(inputCallback));


[_audioEngine startAndReturnError:nil];

渲染回调定义如下:

OSStatus inputCalbackProc (void *                           inRefCon,
AudioUnitRenderActionFlags * ioActionFlags,
const AudioTimeStamp * inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList * ioData)
{
printf("Called");
return noErr;
}

我已经设法以同样的方式在输出节点的音频单元上安装了一个渲染回调,但我的输入回调从未被调用过。

我检查过输入节点的音频单元与输出节点的音频单元相同,这表明图表设置正确。我还尝试在 RemoteIO 单元 (inputNode.audioUnit)

上设置 kAudioOutputUnitProperty_EnableIO

有人有什么建议吗?

最佳答案

RemoteIO 在准备好呈现时实际上并不提供回调。由于它与输出是相同的硬件,因此您可以在渲染输出单元时渲染输入单元

关于ios - 向 AVAudioEngine 添加输入回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32139924/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com