空间音频概述

Qt 空间音频 API 提供了多个类,这些类允许创建三维声音场景。它由位于 3D 空间的对象定义,这些对象发出声音,以及可以使用一个或多个房间建模的周围几何形状。最后,可以在指定的位置和方向上放置一个听众在这个声音场景中。

可以使用 C++ 和 QML API。

创建声音场景

要创建声音场景,首先要实例化一个 QAudioEngine。此引擎处理输入声音数据和几何形状,以创建场景中特定位置的听众所体验到的真实的声音场景表示。

可以使用 QAudioEngine::OutputMode 属性来优化输出,为耳罩使用双耳(虚拟 3D)渲染,或者为立体声或环绕扬声器配置。

可以使用 QAudioEngine::outputDevice 属性选择输出设备。

发动机设置完成后,我们可以通过创建 QSpatialSound 对象并将声音文件路径指定为 QSpatialSound::source 属性来场景中放置各种声音对象。

可以使用 QAudioListener 来定义听众听声音场景的位置和方向。每个引擎最多可以使用一个听众。如果没有指定听众,则引擎假定听众位于坐标系的起点处,面向正 z 方向,正 y 方向上指。

除了声音源和听众之外,您还可以通过一组 QAudioRoom 对象来定义一个几何形状,该形状影响听众如何体验声音。如果听众位于其中一个房间内部,则将应用房间效果。如果他在多个房间内部,则具有最小几何体积的房间将被优先考虑。

如果需要一些与听众的位置和方向无关的立体声音频遮罩(例如背景音乐或旁白),可以使用 QAmbientSound 创建声音遮罩。

有关一个简单的 QWidget 基于示例,该示例展示了一个可以在房间中移动的音频源,请参阅 Spacial Audio Panning Example

参考文档

C++ 类

QAmbientSound

立体声覆盖音

QAudioEngine

管理三维音场

QAudioListener

定义听者所在的位置和方向,听者通过QAudioEngine定义一个音场

QAudioRoom

QSpatialSound

三维空间中的一个声音对象

QML 类型

环境声音

立体声覆盖音

音频引擎

管理三维场景内的声音对象

音频听者

定义听者所在的位置和方向,听者为 audioEngine 定义的声音场

音频房间

空间声音

三维空间中的一个声音对象

© 2024 Qt 公司有限会社。本文件中包含的文档贡献是各自所有者的版权。本文件中的文档根据自由软件基金会发布的《GNU 自由文档许可证》(版本 1.3)授权使用。Qt 及相关商标是芬兰 Qt 公司及/或其他国家的注册商标。所有其他商标都是其各自所有者的财产。