QAVF 音频共享所需组件
为了支持QNX Hypervisor系统中的共享音频,您必须向guest和host images添加组件,并在guest的虚拟机中配置virtio-snd
vdev。
host可以为每个guest提供不同的音频功能,就好像每个guest都在独立的板子上运行一样。例如,一个guest可以被允许捕获和输出音频,而另一个guest只能输出音频。
要将host中的音频功能呈现给任何特定的guest,您需要在托管guest的虚拟机中配置virtio-snd
vdev。vdev配置指定了host上哪些PCM流暴露给了guest。它还指定了必须应用于guest的音频参数限制,例如采样率、支持的格式以及最小和最大fragment大小。有关详细信息,请参阅“vdev virtio-snd”。
Host 组件
要启用audio framework,您的host上必须具备以下组件:
- 音频驱动程序(
deva-*
),在目标板上运行QNX Neutrino RTOS时会使用这些驱动程序。 - host audio service(
io-audio
),用于为guests和host应用程序提供音频捕获、播放和管理功能。 - 音频设备配置文件(例如
io-audio.conf
),用于配置host上的音频设备。 - 音频管理配置文件(例如
audio_policy.conf
),用于配置host上的音频策略(可选)。 - 提供访问音频功能的vdev,即
virtio-snd
。vdev模块vdev-virtio-snd.so
必须包含在您的hypervisor host构建文件的shared object列表中。 - 针对每个托管需要使用音频的guest的虚拟机,都要配置
virtio-snd vdev
;有关如何进行配置的信息,请参阅“vdev virtio-snd”。 - 每个在虚拟机中运行的guest的配置文件(
*.qvmconf
)路径被包含在您的hypervisor host构建文件中。
有关如何配置hypervisor host的一般信息,请参阅QNX Hypervisor用户指南中的“Configuration”部分。
Guest 组件
由于virtio-snd
vdev是一个para-virtualized设备,因此guest必须具备能够与vdev通信的VirtIO音频驱动程序。
通过多个实体管理对物理设备的访问
如果host拥有的PCM设备需要支持多个guests上的并发播放,您必须为该设备配置软件混音器。默认情况下启用此混音器,但可以通过host中的io-audio
服务的启动指令(硬件驱动加载时)或通过音频策略配置文件io_audio_*.conf
来禁用它(或明确启用)。
同样,如果需要通过相同的PCM设备(在host上)进行并发捕获,则必须为该设备配置软件分离器。
最后,如果host还需要通过对guest可访问的PCM设备进行播放或捕获音频,则host必须具备软件混音器和/或分离器来管理并发播放和捕获。
有关io-audio
服务以及软件混音器和分离器的支持的更多信息,请参阅音频开发人员指南。另请参阅QNX Neutrino Utilities参考中的io-audio条目。