13. オーディオ入出力の選択ルール
Audio Sessionをアクティベートすると、アプリがリクエストした構成に合わせてオーディオの入出力が利用できるようになる。
しかし、実際にどのオーディオ入力、オーディオ出力が選ばれるのかはシステムが決定し、AudioRouteChangeの通知で知らされるだけである。
ではシステムはどのように、オーディオの入出力を選択するのだろうか。
iOS機器で利用可能なオーディオ入出力はすでにリストアップして説明した。
それを思い出しながら、物理的な特徴をまとめてみよう。
iOS機器の持つオーディオ入出力は次の3つに分類できると思う。
さらに有線接続は、
有線で何も接続していなく、無線の設定もしていなければ、本体内蔵のオーディオ入出力が使用される。
本体内蔵の入力とはマイクのことだが、iPod touch 3gen以前にはマイクが無いため、これらの機種では入力の無い状態がありうる。
反対に、複数のマイクを持つ機種もあるがカテゴリやモードに合わせて最適なものが1つ選ばれるので、本体内蔵オーディオ入力は1つということにしておこう。
本体内蔵の出力とは、iPhoneに関してはレシーバーもあるが、全機種共通のものといえばスピーカーだ。
後で細かく触れるが、レシーバーが使えるカテゴリとモードは限定的なので、基本的にはスピーカーということになる。
有線での接続には2種類あった。
ヘッドホンジャックとドックコネクタ/Lightningコネクタだ。
ドックコネクタとLightningコネクタはどちらかしか付いていないので、両者をまとめてコネクタという名称を使おう。
ヘッドホンジャックとコネクタには同時に接続ができる。
有線接続した時にどの入出力が使用されるかは、「後挿し優先」(Last in wins)というルールがある。
何もつないでいなければ、本体のマイクとスピーカーで、ヘッドホンをつないだ場合、スピーカーがヘッドホンに切り替わる。
この時、マイク付きヘッドホンだと、本体のマイクからヘッドホンのマイク、本体のスピーカーからヘッドホンに切り替わる。
この状態で、コネクタにLine-Out用のケーブルを挿したり、USB Audioをつなげたりすると、後からつなげた方に切り替わる。
ヘッドホンジャックとコネクタ両方につながっている状態で、後から挿した方、つまり現在選択されている方を抜くと、もう一方の有線接続に切り替わる。
反対に先につないでいた方、つまり現在選択されていない方を抜いても変わらない。
当然両方とも抜いたら本体のマイクとスピーカーに戻るだけである。
これが「後挿し優先」ルールである。
無線での接続にはAirPlayとBluetoothがあった。BluetoothにはさらにHFPとA2DPプロファイルの2種類があった。
WiFi環境下にAirPlay対応機器がつながっている場合、AirPlayをサポートしたカテゴリ+モードであれば、ボリュームスライダーの横にルート選択用のボタンが 表示される。
同様に、ペアリングされたBluetooth機器があった場合もルート選択用のボタンが表示される。
もちろん、BluetoothのHFPやA2DPプロファイルをサポートしたカテゴリ+モードの場合についてである。
無線の場合は「挿す」わけではないので「後挿し優先」ルールは無くルート選択用ボタンでユーザーが選ぶことができる。
ルート選択ボタンに表示される「選択肢」は「後挿し優先」で決定した本体の入出力と使用可能な無線系のリストである。
ただし、カテゴリ+モードがサポートしていない入出力は除外される。
次からは実際に各カテゴリとオプション、モードの組み合わせとその時に使用できるオーディオ入出力を調べた結果を説明しよう。
しかし、実際にどのオーディオ入力、オーディオ出力が選ばれるのかはシステムが決定し、AudioRouteChangeの通知で知らされるだけである。
ではシステムはどのように、オーディオの入出力を選択するのだろうか。
iOS機器で利用可能なオーディオ入出力はすでにリストアップして説明した。
それを思い出しながら、物理的な特徴をまとめてみよう。
iOS機器の持つオーディオ入出力は次の3つに分類できると思う。
- 本体内蔵
- 無線接続
- 有線接続
さらに有線接続は、
- ヘッドホンジャック
- ドックコネクタ/Lightningコネクタ
有線で何も接続していなく、無線の設定もしていなければ、本体内蔵のオーディオ入出力が使用される。
本体内蔵の入力とはマイクのことだが、iPod touch 3gen以前にはマイクが無いため、これらの機種では入力の無い状態がありうる。
反対に、複数のマイクを持つ機種もあるがカテゴリやモードに合わせて最適なものが1つ選ばれるので、本体内蔵オーディオ入力は1つということにしておこう。
本体内蔵の出力とは、iPhoneに関してはレシーバーもあるが、全機種共通のものといえばスピーカーだ。
後で細かく触れるが、レシーバーが使えるカテゴリとモードは限定的なので、基本的にはスピーカーということになる。
有線での接続には2種類あった。
ヘッドホンジャックとドックコネクタ/Lightningコネクタだ。
ドックコネクタとLightningコネクタはどちらかしか付いていないので、両者をまとめてコネクタという名称を使おう。
ヘッドホンジャックとコネクタには同時に接続ができる。
有線接続した時にどの入出力が使用されるかは、「後挿し優先」(Last in wins)というルールがある。
何もつないでいなければ、本体のマイクとスピーカーで、ヘッドホンをつないだ場合、スピーカーがヘッドホンに切り替わる。
この時、マイク付きヘッドホンだと、本体のマイクからヘッドホンのマイク、本体のスピーカーからヘッドホンに切り替わる。
この状態で、コネクタにLine-Out用のケーブルを挿したり、USB Audioをつなげたりすると、後からつなげた方に切り替わる。
ヘッドホンジャックとコネクタ両方につながっている状態で、後から挿した方、つまり現在選択されている方を抜くと、もう一方の有線接続に切り替わる。
反対に先につないでいた方、つまり現在選択されていない方を抜いても変わらない。
当然両方とも抜いたら本体のマイクとスピーカーに戻るだけである。
これが「後挿し優先」ルールである。
無線での接続にはAirPlayとBluetoothがあった。BluetoothにはさらにHFPとA2DPプロファイルの2種類があった。
WiFi環境下にAirPlay対応機器がつながっている場合、AirPlayをサポートしたカテゴリ+モードであれば、ボリュームスライダーの横にルート選択用のボタンが 表示される。
同様に、ペアリングされたBluetooth機器があった場合もルート選択用のボタンが表示される。
もちろん、BluetoothのHFPやA2DPプロファイルをサポートしたカテゴリ+モードの場合についてである。
無線の場合は「挿す」わけではないので「後挿し優先」ルールは無くルート選択用ボタンでユーザーが選ぶことができる。
ルート選択ボタンに表示される「選択肢」は「後挿し優先」で決定した本体の入出力と使用可能な無線系のリストである。
ただし、カテゴリ+モードがサポートしていない入出力は除外される。
次からは実際に各カテゴリとオプション、モードの組み合わせとその時に使用できるオーディオ入出力を調べた結果を説明しよう。