2013-05-25 22 views
7

Arka plan müziğini dosyadan ve mikrofondan kaydeden karaoke uygulamasını yapmaya çalışıyorum. Ayrıca mikrofon girişine filtre efektleri eklemek istiyorum.Muhteşem ses motoru, mikrofon girişine filtreler nasıl uygulanır

i i için filtreler de uygulayabilirsiniz böylece bir kanal olarak mikrofon girişi eklemek için anlamaya olamaz şaşırtıcı ses motor sdk kullanarak ancak yukarıda belirtilen her şeyi yapabilirsiniz

(arka plan müziği değil.)

herhangi bir yardım takdir edilecektir.

benim şimdiki kayıt kodu:

- (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

Bu sorunu çözdünüz mü? Hala aynı sorunla karşı karşıyayım. – Colin

cevap

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

Sen kaydedilen ses verir anda filtreler de uygulayabilirsiniz.

3

Farklı kanallar kullanarak arka plan müziğinizi ve mikrofonunuzu ayırabilirsiniz ve ardından filtreyi yalnızca mikrofon kanalınıza uygulayabilirsiniz.

ilk başlık dosyasında bir kanal grubu beyan

AEChannelGroupRef _group; 

sonra basitçe bu gruba filtre ekleyin sonra bu gruba kaydedilen dosya için

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

kullanan ve oyuncu katmak yalnızca

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

Bu güzel, ama nasıl yapılacağını da anlatmalısın. –

+0

Alexander, eğer yararlı olduğunu düşünüyorsanız cevabımı tavsiye ederim. –

İlgili konular