2009-10-23 17 views
6

私のアプリでは、同時にオーディオを録音して再生します。アプリはほぼ完成です。しかし、私には迷惑なものが1つあります。オーディオセッションがPlayAndRecordに設定されている場合、SoloAmbientカテゴリの同じサウンドと比較してサウンドは静かになります。 PlayAndRecordを使って音を大きくする方法はありますか?iPhone SDK audioSession質問

答えて

7

再生と録音のためにセッションを使用すると、再生は電話で使用されるスピーカーから出てきます。そうでない場合は、電話の底にあるスピーカーから出てきます。これはフィードバックを防止するためです。あなたは違っしなければならない以前のSDKの、このコードは3.1.2で動作

//when the category is play and record the playback comes out of the speaker used for phone conversation to avoid feedback 
    //change this to the normal or default speaker 

    UInt32 doChangeDefaultRoute = 1;   
    AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute); 

ので、同じようにこれをオーバーライドする(ただし、一度に両方を行っていない場合は、フィードバックはなく、問題に注意)

ことができます。あなたはこの方法で注意する必要があり

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; 
    status = AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, sizeof (audioRouteOverride), &audioRouteOverride); 

、それはあなたが電源に接続ヘッドフォンを持っている場合でも、あなたは中断を監視し、それに応じてルートを変更する必要が優先されます。今よりよく使う3.1.2

-1

ヘッドフォンを接続するようにユーザーに頼んでください。

ヘッドフォンとマイクの組み合わせにこの問題はありません。

オーディオハードウェアの結果であるバグかどうかわからない場合は、 、または静かな再生が意図的で厄介なものであれば、クリーナーの録音方法がわかりません。

UPDATE

私はPlayAndRecordセッションを設定する受信機にオーディオルートを変更することが分かりました。
ユースケースは、ユーザーがデバイスを耳まで持っているテレフォニーアプリケーション向けです。

これがLeast Surpriseの原則に違反していない場合、私は何がわかりません。