2013-05-21 4 views
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; 
} 
+0

여기에 잘못 될 수있는 많은 것들이있을 수 있습니다. 'result'의 에러 코드는 당신에게 단서를 주어야합니다 .. – Mar0ux

+0

-10868, NSLog 프린트가 "작업을 완료 할 수 없습니다"라는 메시지가 나올 때 실제로이 코드 나 NSF가 무엇을 의미하는지 찾을 수 없습니다. if 거기에 더 많은 정보를 찾을 수있는 방법을 공유 할 수있는 정보를 찾을 수 있습니다. 심지어 온라인으로 찾을 수없는 코드입니다. – aerlfredith

+1

그건 kAudioUnitErr_FormatNotSupported입니다. 이것에 대한 몇 가지 질문이 있습니다. – Mar0ux

답변

-2

이 정말 귀하의 질문에 직접 대답은 아니지만, 당신이해야 정말 사용 Novocaine. iOS에서 AudioUnits를 수동으로 설정하는 것은 좌절의 연습 일 뿐이며 AU 그래프로 특별한 작업을 수행하지 않는 한 더 이상 직접하지 않아야합니다. 주어진 신호에 lopass 필터를 적용하는 것만 큼 간단하기 때문에이 프레임 워크는 훨씬 더 신뢰성이 있습니다.

+0

이것이 있다면 대답이 아니라 의견을 추가하십시오. –