2013-05-25 3 views
7

임 파일 및 마이크에서 배경 음악을 녹음하는 노래방 앱을 만들려고합니다. 또한 마이크 입력에 필터 효과를 추가하려고합니다.놀라운 오디오 엔진 마이크 입력에 필터를 적용하는 방법

나는 내가 그것을에 필터를 적용 할 수 있도록 채널로 마이크 입력을 추가하는 방법을 파악하지 못할 놀라운 오디오 엔진 SDK를 사용하지만, 위에 언급 한 모든 것을 할 수

(배경 음악과 없음.)

어떤 도움을 주시면 감사하겠습니다.

내 현재 기록 코드 :

- (void)beginRecording { 
// Init recorder 
self.recorder = [[AERecorder alloc] initWithAudioController:_audioController]; 
NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) 
           objectAtIndex:0]; 
    NSString *filePath = [documentsFolder stringByAppendingPathComponent:@"Recording.aiff"]; 
// Start the recording process 
NSError *error = NULL; 
if (![_recorder beginRecordingToFileAtPath:filePath 
            fileType:kAudioFileAIFFType 
            error:&error]) { 
    // Report error 
    return; 
} 
// Receive both audio input and audio output. Note that if you're using 
// AEPlaythroughChannel, mentioned above, you may not need to receive the input again. 
[_audioController addInputReceiver:_recorder]; 
[_audioController addOutputReceiver:_recorder]; 
} 
+1

이 문제를 해결 했습니까? 나는 여전히 같은 문제에 직면 해있다. – Colin

답변

0
self.reverb = [[[AEAudioUnitFilter alloc] initWithComponentDescription:AEAudioComponentDescriptionMake(kAudioUnitManufacturer_Apple, kAudioUnitType_Effect, kAudioUnitSubType_Reverb2) audioController:_audioController error:NULL] autorelease]; 

AudioUnitSetParameter(_reverb.audioUnit, kReverb2Param_DryWetMix, kAudioUnitScope_Global, 0, 100.f, 0); 

[_audioController addFilter:_reverb]; 

당신은 녹음 된 오디오 재생시 필터를 적용 할 수 있습니다.

3

다른 채널을 사용하여 배경 음악과 마이크를 분리 할 수 ​​있습니다. 그러면 마이크 채널에만 필터를 적용 할 수 있습니다.

먼저 헤더 파일에 채널 그룹을 선언

AEChannelGroupRef _group; 

단순히 당신이이 그룹에 필터를 추가 한 후이 그룹에 기록 된 파일을

[_audioController addChannels:@[_player] toChannelGroup:_group ]; 

를 사용하는 플레이어를 추가 에만

[_audioController addFilter:_reverb toChannelGroup:_group]; 
+0

좋습니다.하지만 어떻게해야하는지 설명해야합니다. –

+0

알렉산더, 친절하게 내 대답을 upvote 당신이 도움이된다고 생각한다면. –