2011-01-19 8 views
1

iPadプロジェクトで2つのAVAudioPlayerを実装しました。 私は1つのプレーヤーオブジェクト でサウンドを再生していますが、同時に他のプレイヤーで録音しています。2人のプレイヤーでサウンドを再生して録音するのに問題があります

最初のシナリオ

1.Player1は私が話している言葉を記録しています。 2.同時に、player1は、player2で再生している音楽も録音しています。

※このシナリオは、マイク付きのヘッドセットをiPadに接続していないとうまくいきます。

*しかし、私は私のiPad &繰り返しにヘッドセットに上記のシナリオを接続した場合、以下の点が観察されています

を私は。私は自分のヘッドセットでplayer2が再生している音楽を聞くことができます。

ii。しかし、ヘッドセットのマイクから声を録音することをやめた後、録音したトラックを再生すると音楽音が聞こえません。私はヘッドセットのマイクを通して録音した声だけを聞くことができます。これが私の問題です。 「マイク付きヘッドセット」で私のアプリケーションはシナリオ1と同じように動作します。

私は私のAVAudioSessionために、以下の設定を使用しています:

NSDictionary *recordSettings = [[NSDictionary alloc] initWithObjectsAndKeys: 
              [NSNumber numberWithFloat: 44100.0],AVSampleRateKey, 
              [NSNumber numberWithInt: kAudioFormatLinearPCM],AVFormatIDKey, 
              [NSNumber numberWithInt: 1], AVNumberOfChannelsKey, 
              [NSNumber numberWithInt: AVAudioQualityMax],AVEncoderAudioQualityKey,nil]; 

トラックが.wavファイル形式で保存され、次の

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
      NSError *err = nil; 
      [audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err]; 

はレコーダーのレコードの設定があります。

また、player2が再生する音楽は、.wavまたは.mp3形式です。

この問題を解決するのに手伝ってください。

答えて

1

私はAVAudioSessionに少し錆びています。そのため、直接的な助けはできません。私が言うことは、AVAudioSessionを使って自分が望むことができないことを人々が気付くと、OpenALに移行するということです。 OpenALは少し難しいかもしれませんが、私がやったのは、Cocos2Dをダウンロードしたことです。 Cocos2D(CocosDenshion)の素晴らしい点は、OpenAL用のこれらの単純なラッパークラスがあることです。 そしてコードはすべて公開されているので、そのコードを覗き込み、それがどのように機能するかを見ることができます。セットアップ(フレームワークを混乱させ、プロジェクトにソースコードを追加する必要があります)を設定するのはちょっと難しいですが、一度ソートしてしまえばそれはすべて役に立ちます。

これは私のための最善の道だった、それもあなたのために働くことを願って!

...ヘッドセット/イヤホンを使用しているときにボイスレコーダー(周囲の音を録音している)が音楽サウンドを録音していないことがありますか?これに対する解決策は、録音(同時に)とともに元の音楽を再生することであるように思われる。

関連する問題