2

Audio Queues を使用してユーザー入力の音声を録音するアプリケーションがあります。これは、ユーザーがボタンを押したときにのみ、短時間のみ発生します。

ユーザーのバックグラウンド ミュージックの再生を継続できるようにしたいのですが、録音が実際に行われているときはいつでもミュートするか、はるかに低い音量で再生します (スピーカーから再生されるオーディオを録音しないようにするため)。

私のレコーディング キューでは、PlayAndRecord カテゴリを使用しており、OverrideCategoryMixWithOthers プロパティを true に設定しています。

4

1 に答える 1

3

この問題は、AudioSessionSetActiveWithFlags API と kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation フラグが追加された iOS4+ ではあまり問題になりませんでした。

録音中にバックグラウンド ミュージックを一時停止するには、オーディオ セッションを無効にする AudioSessionSetActive(false) を呼び出す必要があります。次に、カテゴリを PlayAndRecord モードに切り替え、OverrideCategoryMixWithOthers プロパティを false に設定します。

ここで、これらの設定で AudioSessionSetActive(true) を使用してセッションを再アクティブ化します。iPod/Pandora などのオーディオ セッションが中断され、フェードアウトして一時停止します。

次に、記録が終了したら、次を使用してセッションを再度非アクティブ化します

AudioSessionSetActiveWithFlags(false, kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation);

これにより、セッションが中断されなくなり、音楽の再生を開始できることがバックグラウンド ミュージック アプリに通知されます。

最後に、MediaPlayback (または同等の) モードを使用してオーディオ セッションを再度設定し、OverrideCategoryMixWithOthers プロパティを再度 true に設定できます。

于 2011-09-11T18:50:36.150 に答える