4

Objective-C に機能を実装しようとしています。このユース ケースでは、ユーザーがハンズフリーの Bluetooth ヘッドセットに話しかけ、音声をオーディオ ファイルとミックスし、両方をヘッドフォン ジャックで再生する必要があります。

プログラムが動作していて、HFB 経由で、または有線マイクを使用して、マイクとオーディオのミキシングを許可します。ただし、オーディオは常にマイク ソースと同じ場所で再生されます。ヘッドフォン ジャックへのオーディオ出力のみをオーバーライドする方法が見つかりません。

ドキュメントで見つけた次のコードを使用して、スピーカーへの出力をオーバーライドしましたが、オーディオをヘッドフォンジャックに強制するコードが見つかりません。

[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];

上記のコード行のもう 1 つの問題は、組み込みスピーカーと組み込みマイクへの入力と出力をオーバーライドすることです。

私の使用例に戻ると、ハンズフリー Bluetooth を使用して、ヘッドフォン ジャックから音声をボイスオーバーする必要があります。これをどのように実装できるかについてのアイデアはありますか?

4

1 に答える 1

3

私は非常によく似たユース ケースを持っていますが、Apple のドキュメントを検索し、Apple と直接話した後、現在、入力と出力のデータ ソース/ポートを個別に設定することはできません。

Apple のドキュメントによると:

https://developer.apple.com/library/ios/qa/qa1799/_index.html

アプリケーションが setPreferredInput:error: メソッドを使用して Bluetooth HFP 入力を選択する場合、出力は自動的に Bluetooth HFP 出力に変更されます。さらに、MPVolumeView のルート ピッカーを使用して Bluetooth HFP 出力を選択すると、自動的に入力が Bluetooth HFP 入力に変更されます。したがって、入力または出力のみが個別に設定されていても、入力と出力の両方が常に Bluetooth HFP デバイスで終了します。

バグ レポートを Apple に送信します。十分な苦情があれば、彼らはそれを変更するかもしれません。

于 2014-02-09T19:11:03.693 に答える