iOS Apps Developer's Note

Audio Session Top

16. PlayAndRecordカテゴリのオーディオ入出力

PlayAndRecordカテゴリは、入力と出力の両方を使用するカテゴリである。
PlayAndRecordカテゴリはモードによって使用可能なオーディオ入出力が細かく変わるので説明は長くなる。

まず、GameChatモードに関しては直接このモードを指定するのではなくてGameKitの中でChatをするときに設定されるので 今回は調べていないことをあらかじめお断りしておく。

PlayAndRecordカテゴリのすべてのモードで共通して使用できる入力と出力について説明する。

入力ではBuilt-In MicとHeadset Micはどのモードでも使用できる。
また、Bluetooth HFPはAllowBluetoothのオプションが指定されていて、接続状態であれば使用できる。
VoiceChatモードとVideoChatモードは自動でAllowBluetoothのオプションをセットするのでBluetooth HFPが使用できる。

出力に関してはHeadphoneとBuilt-In Speakerは使用可能で、入力と同様Bluetooth HFPも AllowBluetoothオプションの指定と接続状態であれば使用できる。
しかし、それぞれ別々ではなく出力をBluetooth HFPにすれば入力も合わせてHFPに変わる。
通話系のBuilt-In MicとBuilt-In Speaker/Receiver、Bluetooth HFP、Headset MicとHeadphoneという組み合わせは 可能な限りペアになる。
Bluetooth HFPは必ずペアで切り替わる。
HeadphoneにHeadset Micが無い場合は出力がHeadphoneになり、入力にはそのままBuilt-In Micが使われる。

反対に、出力で使用できないポートはBluetooth A2DPとAirPlayである。
この2つのポートから音を出したい場合は、Playback系のカテゴリを使用しなければならない。
言い換えると、Bluetooth A2DPとAirPlayの出力ルートはマイクなどの入力と同時には使用できないということだ。
ただし、AirPlayに関してはミラーリングのみDefaultモード、VideoChatモード、GameChatモードで使用可能なようだ。
ミラーリングとはメインの出力と同じ内容をAirPlayにも出力するというものである。

次に、モードによって使えたり使えなかったりする入出力を説明しよう。

USB Audio (INとOUT)、HDMI、Line-Outというコネクタ接続するポートは VoiceChatとVideoChatでは使用できない。
未確認ではあるがGameChatでも使えないだろう。

ハード仕様の違いがあるためiPhoneのみではあるが Built-In Receiverが使用できるのはVoiceChatとMeasurementモードの2つである。
MeasurementモードではRouteアイコンが表示されてSpeakerとReceiverが選べるようになる。
HDMIがつながっているときのMeasurementモードではHDMIかSpeakerかの選択になって Receiverは選択肢からなくなる。

PrevNext