2016-07-28 15 views
1

: '필요 조건은 거짓! 노드 = 전무'나 다음 점점 녹음 된 오디오의 피치를 변경하는 방법 오류로 인해, 이유 캐치되지 않는 예외 'com.apple.coreaudio.avfaudio'응용 프로그램 종료

AVAudioFile *file=[[AVAudioFile alloc] initForReading:_recordedvoice error:nil]; 
AVAudioFormat *format=file.processingFormat; 
AVAudioFrameCount capacity= (AVAudioFrameCount)file.length; 
AVAudioPCMBuffer *buffer=[[AVAudioPCMBuffer alloc] initWithPCMFormat:format frameCapacity:capacity]; 
[file readIntoBuffer:buffer error:nil]; 
[playerNode scheduleBuffer:buffer completionHandler:nil]; 

engine = [[AVAudioEngine alloc] init]; 
    playerNode = [[AVAudioPlayerNode alloc] init]; 

[engine attachNode: playerNode]; 

AVAudioMixerNode *mixer = engine.mainMixerNode; 
AVAudioUnitTimePitch *auTimePitch; 
auTimePitch.pitch=1200.0;// In cents. The default value is 1.0. The range of values is -2400 to 2400 
auTimePitch.rate = 2.0; //The default value is 1.0. The range of supported values is 1/32 to 32.0. 

//get the error in the following line 

[engine attachNode: auTimePitch]; 
[engine connect:playerNode to:auTimePitch format:[mixer outputFormatForBus:0]]; 
[engine connect:playerNode to:mixer format:[mixer outputFormatForBus:0]]; 

[playerNode play]; 
+0

은 완료 핸들러가있는 것일 수 있습니다. 이 스택 오버플로 대답을 확인하십시오 - http://stackoverflow.com/a/29630124/5716449 – Ro4ch

+0

메신저 완전히 객관적으로 새로운 여자 목소리 등 다른 목소리로 녹음 된 목소리를 변경하고 싶습니다 당신이 나를 도울 수 있습니다 .... –

+0

확인 이 질문은 밖으로. http://stackoverflow.com/questions/1100495/real-time-pitch-shifting-on-the-iphone 그것은 당신의 탐구에 도움이 될 것입니다. – Ro4ch

답변

0

재생을 시작하기 전에 먼저 엔진을 시동하십시오.

[self.engine startAndReturnError:nil]; 
[playerNode play]; 
+0

이 피치를 저장하는 방법 오디오가 변경 되었습니까? –