2013-07-08 21 views
14

私のボイスチャットアプリケーションでRemoteIOを使用しています。エコーキャンセルを有効にするために、セッションタイプとして "kAudioSessionCategory_PlayAndRecord"を設定した後、 "kAudioUnitSubType_RemoteIO"を "kAudioUnitSubType_VoiceProcessingIO"に変更しました。エコーキャンセリングは機能しますが、出力音量レベルは以前のRemoteIO出力レベルに対して大幅に低下しました。 RemoteIOを使用しているときと同じようにVoiceProcessingIOを使用するとき、誰も同じ出力音量レベルを取得する方法を知っていますか?RemoteIOの代わりにVoiceProcessingIOオーディオユニットのサブタイプを使用すると、出力ボリュームに望ましくないドロップが発生する

+0

私は自分自身のプロジェクトでこれが問題として報告されているので、これと根本的な回避策の根本的な原因を知ることにも興味があります。 VPIOが同じオーディオセッション設定で別の働きをしているRemoteIOユニットに落とされたときに、静かになるという本質的な理由があるようには思われませんが、それは動作のようです。 – Halle

+0

私もこの問題を抱えています。私はそれがiOS 6とiOS 5のボリュームドロップの方がはるかに多いことに気付きました。iOSのテスト対象は何ですか? –

+0

私はまた、VPIOがiPhoneモデル5,5でiOS 7を完全に壊していることを発見しました。私は5cと仮定しています。 –

答えて

1

ボリュームの出力の消失を考慮することはできないと思います。 「このゲイン(またはあなたのケース降下の)レベルを制御なしAPIはありませんRecording volume drop switching between RemoteIO and VPIO

によると、すべてが( 例えばVPIOが使用されることが期待されたオーディオセッションのカテゴリに応じて、OSによって 内部的に設定されPlayAndRecordは常に)、 IOユニットが設定されています。

出力音量が異なるため、テストしているiOSについてお聞かせください。

3

は、私は、これは長い時間で回答されていないことを認識し、私はあなたがしなければ変更するオーディオユニットの間に、次のことがわかった:

AudioComponentInstanceDispose(_ioUnit); 

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&nsError]; 

[[AVAudioSession sharedInstance] setActive:NO error:&nsError]; 

そして、このような巨大なラウドネス問題を作成しないように見えるが各ユニット間。この時点で、オーディオユニットを再初期化し、セッションタイプを必要なものに設定してください。

関連する問題