Music TO GO!

2013年07月18日

AndroidでUSBオーディオクラスの標準搭載が実現か

GoogleのAndroid開発フォーラムで長らくReviewed(確認した)で放置されてきたissue 24614(add support for USB Audio)のステータスがAssigned(取り組んだ)に変わっています !
http://code.google.com/p/android/issues/detail?id=24614
これはなにを意味するかと言うと、いままで一部の機種(Galaxy S3とか)でしか使えなかったUSBクラスドライバーを用いたUSB DACの使用が、Android搭載の全機種で可能になるということです。

USB Audioって4.1からはいってたんじゃないの、という方もいるかもしれません。そこでAndroidでのUSB DAC使用のおさらいです。
Androidで言うUSB Audioは大きく2通りに分けられます。
まず4.1でUSB Audioという機能が実現されましたが、これはアクセサリープロトコル2.0の中で実装されたものです。アクセサリープロトコルで実装したということはAndroidはUSBデバイス側になり、AppleでいうとiTransportのようなiPodデジタル対応DACのように専用機が必要です。これは実現された例は4.1のリリースの際にArduinoのキットで実装されただけで、現状Android対応のUSB DACと言われているものは次にあげる別の方式を取っています。
そのもうひとつの方法はAndroidをUSBホスト側で使うことです。いまではこれが一般的で、Galaxy S3などで使われている方式です。これはOS供給先のGoogleではなく携帯メーカーの対応となるので対応機種にはばらつきが出ます。DACではXP-01などほぼすべてがそうです。つまり通常のPCオーディオのようにOS内のUSBオーディオクラスドライバーを使い、普通のUSB標準ドライバー対応のUSB DACを接続します。ただしAndroidは本来はデバイスなのでホスト/デバイスの関係を逆転するためにUSB OTGケーブルが必要です。
前に書きましたがAndroidの標準の(CoreAudioみたいな)音声システムはAudioFlingerというもので、USBオーディオクラスドライバーをサポートしていません。これが上のissue 24614で指摘されたもので、AndroidはLinuxがベースですのでALSAのUSBオーディオクラスドライバーを生かしてくれと言うことです。要件としてはこの方式ではホスト機能のためにAndroid4.0が必要です(4.1より前でOKです)。
これはAppleでいうとiPadのカメラコネクションキット経由で普通のUSB DACを接続することに相当します。今回取り組んでいるissue 24614はこちらの方法です。いままでGalaxy S3など一部機以外はUSBオーディオクラスドライバーを生かすためにはOSの書き換えなどマニアックに対応していましたが、それが不要となります。

このようにスマートフォンはデバイス側とホスト側の両方になりえるので注意が必要です。ちなみにADKではこれを利用してAndroid端末をデバイス側で使うことにより消費電力の低下に応用しています。

10月と言われてるAndroid5.0(Key Lime Pie)には実装されるとよいですね。ちょっと楽しみなことです(私もいろいろと思惑があり)。
posted by ささき at 22:05 | TrackBack(0) | __→ スマートフォンとオーディオ | このブログの読者になる | 更新情報をチェックする

この記事へのトラックバック