本页内容

空间音频概述

Qt Spatial Audio API 提供了一系列类,用于创建三维声场。该声场由位于三维空间中并发出声音的对象,以及可通过一个或多个房间建模的周围几何体所定义。最后,可以将听者以指定的位置和朝向放置于该声场中。

可使用的API包括C++和QML两种。

创建声场

要创建声场,首先需实例化一个 `QAudioEngine` 对象。该引擎会处理输入的音频数据和几何信息,从而生成逼真的声场效果,使其与置身于声场特定位置的人所体验到的效果一致。

QAudioEngine::OutputMode 属性可用于优化输出,以适应使用双耳(虚拟3D)渲染的耳机,或立体声或环绕声扬声器配置。

可通过QAudioEngine::outputDevice 属性选择输出设备。

引擎设置完成后,我们可以通过创建QSpatialSound 对象,并使用QSpatialSound::source 属性指定声音文件的URL,将各种声音对象放置到场景中。

QAudioListener 可用于定义聆听声音场景的听众的位置和朝向。每个引擎最多可使用一个听众。如果未指定听众,引擎会默认听众位于坐标系原点,面向正 z 方向,且正 y 轴指向上方。

除了声源和听众外,您还可以通过一组QAudioRoom 对象来定义几何体,从而影响听众对声音的感知。 房间均为矩形,每面墙支持多种材质,通过不同的声音反射和混响效果带来各异的听觉体验。当听者位于某个房间内部时,将应用相应的房间效果。若听者同时位于多个房间内,则体积最小的房间效果将优先生效。

如果您需要一些与听众位置和方向无关的立体声叠加效果(例如背景音乐或画外音),可以使用QAmbientSound 来创建声音叠加。

如需一个基于 QWidget 的小型示例,展示可在房间内移动的单个音频源,请参阅“空间音频平移示例”。

参考文档

C++ 类

QAmbientSound

立体声叠加音频

QAudioEngine

管理三维声场

QAudioListener

定义聆听由 QAudioEngine 定义的声音场的人的位置和方向

QAudioRoom

QSpatialSound

三维空间中的声音对象

QML 类型

AmbientSound

立体声叠加音效

AudioEngine

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

AudioListener

定义了聆听由 AudioEngine 定义的声场的人的位置和方向

AudioRoom

SpatialSound

三维空间中的声音对象

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.