QAVF 音频共享框架架构
共享音频框架使运行在虚拟机中的Guest能够访问运行在hypervisor host中的音频驱动程序和服务。
本章假设您已经熟悉以下文档中介绍的概念:
我们还建议您熟悉音频开发人员指南中介绍的基本概念。
音频框架提供了一个名为virtio-snd
的虚拟设备(vdev),使Guest能够访问主机上一个或多个音频硬件驱动程序提供的音频功能。该vdev基于非官方草案版本1.2的VirtIO标准。
音频共享
host管理guests和物理音频设备之间的所有交互:
- hypervisor拥有物理设备并运行这些设备的驱动程序(
deva-*
)。 - 如果虚拟机中的guest需要访问物理设备,则虚拟机向guest呈现音频虚拟设备(
virtio-snd
),guest运行VirtIO音频驱动程序与虚拟设备进行交互。此音频驱动程序由操作系统的本机Audio Service加载;例如,对于QNX Neutrino客户端,io-audio是Audio Service。 - 为了彼此通信,guest驱动程序和vdev使用
virtqueues
,这是在VirtIO设备上进行批量数据传输的标准机制。 - host上的应用程序可以使用io-audio的QNX audio service来访问音频设备(例如扬声器)。
下图说明了由hypervisor host通过virtio-snd
虚拟设备管理的guest和音频硬件之间的交互。
有关在QNX Hypervisor中设备共享的更多信息,请参阅“Understanding QNX Virtual Environments”章节中“Devices”一节的QNX Hypervisor用户指南。