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;
}