Oracle Solaris のオーディオデバイスの場合は、USB 2.0、1.1、および 1.0 のみがサポートされ、USB 3.0 はサポートされません。また、再生専用、録音専用、または録音と再生用のデバイスがサポートされます。
Oracle Solaris USB オーディオのサポートは、ドライバのペアによって実装されます。
オーディオ制御ドライバ (usb_ac) - ユーザーアプリケーションの制御インタフェースを提供します。詳細は、usb_ac(7D) のマニュアルページを参照してください。
オーディオストリーミングドライバ (usb_as) - 再生中および録音中にオーディオデータメッセージを処理します。また、サンプル周波数と精度を設定し、usb_ac ドライバからの要求をエンコードします。詳細は、usb_as(7D) のマニュアルページを参照してください。
一部のオーディオデバイスでは、ソフトウェアが制御している音量を設定できます。この機能を管理するために、STREAMS モジュールの usb_ah がヒューマンインタフェースデバイス (HID) ドライバの先頭に置かれます。詳細は、usb_ah(7M) のマニュアルページを参照してください。
プライマリオーディオデバイスは、/dev/audio です。/dev/audio が USB オーディオを指していることを確認するには、mixerctl コマンドを使用します。例:
%$ mixerctl Device /dev/audioctl: Name = USB Audio Version = 1.0 Config = external Audio mixer for /dev/audioctl is enabled
接続された USB オーディオデバイスには、audioplay コマンドおよび audiorecord コマンドを使用して、/dev/sound/N デバイスリンクを介してアクセスします。
/dev/audio および /dev/sound/N デバイスは、スピーカー、マイク、またはコンボデバイスを参照できます。不正なデバイスタイプを参照すると、そのコマンドは失敗します。たとえば、マイクに対して audioplay を使用しようとすると、そのコマンドは失敗します。
ほとんどの Oracle Solaris オーディオアプリケーションでは、特定のデフォルトオーディオデバイスを選択できます。たとえば、audioplay や audiorecord の場合には、AUDIODEV シェル変数を設定するか、これらのコマンドに –d オプションを指定します。ただし、/dev/audio をオーディオファイルとしてハードコードしているサードパーティー製のアプリケーションでは AUDIODEV は動作しません。
USB に接続されたオーディオデバイスは、/dev/audio が使用されていない場合、自動的にプライマリオーディオデバイス /dev/audio となります。そのデバイスは、システムをリブートした後でも、プライマリオーディオデバイスのままです。USB オーディオデバイスが追加で差し込まれた場合、最後に差し込まれたデバイスがプライマリオーディオデバイスになります。
オンボードのオーディオと USB オーディオの間で /dev/audio を切り替える方法については、オンボードのオーディオデバイスに戻すときの問題および usb_ac(7D) を参照してください。