对于 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 推送至人机接口设备 (Human Interface Device, 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
可以对 /dev/sound/N 设备链接使用 audioplay 和 audiorecord 命令访问已连接的 USB 音频设备。
请注意,/dev/audio 和 /dev/sound/N 设备可以引用扬声器、麦克风或组合设备。如果引用不正确的设备类型,则该命令将失败。例如,如果尝试将 audioplay 命令与麦克风一同使用,该命令将失败。
对于大多数 Oracle Solaris 音频应用程序(如 audioplay 和 audiorecord),通过设置 AUDIODEV shell 变量或为这些命令指定 –d 选项,可以选择特定的缺省音频设备。但是,设置 AUDIODEV 不适用于将 /dev/audio 硬编码为音频文件的第三方应用程序。
插入 USB 音频设备时,如果 /dev/audio 不在使用中,则该设备将自动成为主音频设备 /dev/audio。即使在重新引导系统后,该设备也仍为主音频设备。如果插入其他 USB 音频设备,则最后一个设备将成为主音频设备。
有关在板载音频与 USB 之间切换 /dev/audio 的说明,请参阅恢复为板载音频设备时遇到的问题和 usb_ac(7D)。