2
我想在IOS上的核心音频中实现低通滤波器,但是当我使用下面的代码时,会产生一个错误,指出“操作无法完成”,这是非常不利于解决问题的。而且我可以看到这个操作是非法的。IOS音频单元
任何人都可以帮助我吗?或者把我介绍给一个有关核心音频的体面文档的地方,因为苹果文档确实非常无益。
result = AUGraphNodeInfo(processingGraph, lowpassNode, NULL, &lowpassUnit);
if(result != noErr)
{
[self printErrorMessage: @"AUGraphNodeInfo" withStatus: result];
return;
}
int byteSize = sizeof(AudioUnitSampleType);
AudioStreamBasicDescription streamFormat;
streamFormat.mFormatID = kAudioFormatLinearPCM;
streamFormat.mFormatFlags = kAudioFormatFlagsAudioUnitCanonical;
streamFormat.mBytesPerPacket = byteSize;
streamFormat.mFramesPerPacket = 1;
streamFormat.mBytesPerFrame = byteSize;
streamFormat.mChannelsPerFrame = 1;
streamFormat.mBitsPerChannel = 8 * byteSize;
streamFormat.mSampleRate = graphSampleRate;
NSLog (@"Setting stream format for lowpass unit input bus");
result = AudioUnitSetProperty(lowpassUnit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input,
0,
&streamFormat,
sizeof (AudioStreamBasicDescription));
if (noErr != result)
{
NSLog(@"%@", [NSError errorWithDomain:NSOSStatusErrorDomain code:result userInfo:nil]);
return;
}
可能有这么多事情在这里可能会出错。 'result'中的错误代码应该给你一个线索.. – Mar0ux
-10868,我真的不知道我在哪里可以可靠地找到这些代码或它们的意思,当NSLog打印只是说“操作无法完成”,如果有更多信息可以找到,请分享我如何找到这些信息。我甚至找不到在线的代码。 – aerlfredith
这是kAudioUnitErr_FormatNotSupported。我看到有这方面的一些问题 - 检查出来。 – Mar0ux