2013-05-25 6 views
7

Imは、ファイルとマイクからバックグラウンドミュージックを記録するカラオケアプリケーションを作成しようとしています。 また、フィルター効果をマイク入力に追加したいと考えています。すばらしいオーディオエンジンマイク入力にフィルタを適用する方法

私は素晴らしいオーディオエンジンの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あなたが役立つと思う場合。 –

関連する問題