QAudioEngine Class
QAudioEngine은 3차원 음장을 관리합니다. 더 보기...
Header: | #include <QAudioEngine> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SpatialAudio) target_link_libraries(mytarget PRIVATE Qt6::SpatialAudio) |
qmake: | QT += spatialaudio |
상속합니다: | QObject |
공용 유형
enum | OutputMode { Surround, Stereo, Headphone } |
속성
|
|
공용 기능
QAudioEngine() | |
QAudioEngine(QObject *parent) | |
QAudioEngine(int sampleRate, QObject *parent = nullptr) | |
virtual | ~QAudioEngine() override |
float | distanceScale() const |
float | masterVolume() const |
QAudioDevice | outputDevice() const |
QAudioEngine::OutputMode | outputMode() const |
bool | paused() const |
bool | roomEffectsEnabled() const |
int | sampleRate() const |
void | setDistanceScale(float scale) |
void | setMasterVolume(float volume) |
void | setOutputDevice(const QAudioDevice &device) |
void | setOutputMode(QAudioEngine::OutputMode mode) |
void | setPaused(bool paused) |
void | setRoomEffectsEnabled(bool enabled) |
공용 슬롯
신호
void | distanceScaleChanged() |
void | masterVolumeChanged() |
void | outputDeviceChanged() |
void | outputModeChanged() |
void | pausedChanged() |
상세 설명
QAudioEngine 인스턴스를 사용하여 3차원에서 사운드 필드를 관리할 수 있습니다. 사운드 필드는 3D 공간의 지정된 위치에서 사운드를 정의하는 여러 개의 QSpatialSound 개체로 정의됩니다. QAmbientSound 을 사용하여 스테레오 오버레이를 추가할 수도 있습니다.
QAudioListener 을 사용하여 음원을 기준으로 음장을 듣는 사람의 위치를 정의할 수 있습니다. 청취자가 음원에서 멀리 떨어져 있으면 음원이 덜 잘 들립니다. 또한 청취자와 소스 사이의 방향에 따라 해당 라우드스피커에 매핑됩니다.
QAudioEngine은 두 가지 출력 모드를 제공합니다. 첫 번째 모드는 스테레오 스피커 쌍 또는 서라운드 구성과 같은 스피커 세트에 음장을 렌더링합니다. 두 번째 모드는 헤드폰을 사용할 때 몰입감 있는 3D 사운드 경험을 제공합니다.
사운드 현지화에 대한 인식은 주로 두 가지 요인에 의해 좌우됩니다. 첫 번째 요인은 왼쪽 귀와 오른쪽 귀 사이의 음파의 타이밍 차이입니다. 두 번째 요인은 다른 방향에서 들어오는 소리가 귀와 머리에서 다른 유형의 반사를 일으키는 다양한 방식에서 비롯됩니다. 자세한 내용은 https://en.wikipedia.org/wiki/Sound_localization 을 참조하세요.
공간 오디오 엔진은 헤드 관련 전달 함수(HRTF, https://en.wikipedia.org/wiki/Head-related_transfer_function 참조)를 통해 이러한 타이밍 차이와 반사를 에뮬레이트합니다. 사용된 함수는 평균적인 사람의 귀와 머리에 대한 이러한 효과를 에뮬레이트합니다. 헤드폰을 사용할 때 대부분의 사람에게 몰입감 있는 3D 사운드 현지화 경험을 제공합니다.
이 엔진은 다양한 유형의 방을 에뮬레이트하기 위해 방 속성 및 리버브 설정을 정의할 수 있는 매우 다재다능한 엔진입니다.
음원을 가려서 해당 음원에서 나오는 소리를 감쇠시킬 수도 있습니다.
오디오 엔진은 기본적으로 센티미터 단위의 좌표계를 사용합니다. 축은 3D에서 사용되는 일반적인 좌표계와 정렬됩니다. 양수 x는 오른쪽을, 양수 y는 위쪽을, 양수 z는 뒤쪽을 가리킵니다.
멤버 유형 문서
enum QAudioEngine::OutputMode
상수 | 값 | 설명 |
---|---|---|
QAudioEngine::Surround | 0 | 사운드를 출력 장치의 라우드스피커 구성에 매핑합니다. 일반적으로 스테레오 또는 서라운드 스피커 설정입니다. |
QAudioEngine::Stereo | 1 | 사운드를 출력 장치의 스테레오 라우드스피커 구성에 매핑합니다. 이렇게 하면 추가 스피커는 무시되고 왼쪽 및 오른쪽 채널만 사용하여 음장의 스테레오 렌더링을 생성합니다. |
QAudioEngine::Headphone | 2 | 헤드폰 공간화를 사용하여 헤드폰을 통해 음장을 들을 때 3D 오디오 효과를 만들 수 있습니다. |
속성 문서
distanceScale : float
공간 오디오 엔진에서 사용하는 좌표계의 축척을 정의합니다. 기본적으로 모든 단위는 Qt Quick 3D 에서 사용하는 기본 단위와 일치하는 센티미터 단위입니다.
미터 단위로 단위를 가져오려면 거리 축척을 QAudioEngine::DistanceScaleMeter로 설정합니다.
함수에 액세스합니다:
float | distanceScale() const |
void | setDistanceScale(float scale) |
알림 신호:
void | distanceScaleChanged() |
masterVolume : float
음장 렌더링에 사용되는 볼륨을 설정하거나 반환합니다.
함수에 액세스합니다:
float | masterVolume() const |
void | setMasterVolume(float volume) |
알림 신호:
void | masterVolumeChanged() |
outputDevice : QAudioDevice
음장 재생에 사용 중인 장치를 설정하거나 반환합니다.
기능에 액세스합니다:
QAudioDevice | outputDevice() const |
void | setOutputDevice(const QAudioDevice &device) |
알림 신호:
void | outputDeviceChanged() |
outputMode : OutputMode
엔진의 현재 출력 모드를 설정하거나 검색합니다.
기능에 액세스합니다:
QAudioEngine::OutputMode | outputMode() const |
void | setOutputMode(QAudioEngine::OutputMode mode) |
알림 신호:
void | outputModeChanged() |
QAudioEngine::OutputMode 를참조하세요 .
paused : bool
공간 오디오 엔진을 일시 중지합니다.
기능에 액세스합니다:
bool | paused() const |
void | setPaused(bool paused) |
알림 신호:
void | pausedChanged() |
멤버 함수 문서
QAudioEngine::QAudioEngine()
[explicit]
QAudioEngine::QAudioEngine(QObject *parent)
[explicit]
QAudioEngine::QAudioEngine(int sampleRate, QObject *parent = nullptr)
parent 를 사용하여 공간 오디오 엔진을 구축합니다.
엔진은 sampleRate 에서 제공한 샘플 레이트로 작동합니다. 기본 샘플 레이트가 제공되지 않은 경우 기본 샘플 레이트는 44100(44.1kHz)입니다.
해당 샘플 레이트가 제공되지 않는 사운드 콘텐츠는 엔진에서 처리할 때 자동으로 sampleRate 로 리샘플링됩니다. 대부분의 경우 기본 샘플 레이트로도 충분하지만, 대부분의 사운드 파일이 다른 레이트로 샘플링되는 경우 다른 레이트를 정의하여 리샘플링에 따른 CPU 오버헤드를 피할 수 있습니다.
[override virtual noexcept]
QAudioEngine::~QAudioEngine()
공간 오디오 엔진을 파괴합니다.
[slot]
void QAudioEngine::pause()
재생을 일시 중지합니다.
[slot]
void QAudioEngine::resume()
재생을 재개합니다.
bool QAudioEngine::roomEffectsEnabled() const
룸 효과가 활성화되면 참을 반환합니다.
setRoomEffectsEnabled()도 참조하세요 .
int QAudioEngine::sampleRate() const
엔진에 설정된 샘플 레이트를 반환합니다.
void QAudioEngine::setRoomEffectsEnabled(bool enabled)
에코 및 리버브와 같은 룸 효과를 활성화합니다.
enabled 이 참이면 룸 효과를 활성화합니다. 룸 효과는 하나 이상의 QAudioRoom 개체를 만들고 리스너가 적어도 하나의 룸 안에 있는 경우에만 적용됩니다. 청취자가 여러 방 안에 있는 경우 볼륨이 가장 작은 방이 사용됩니다.
roomEffectsEnabled()도 참조하세요 .
[slot]
void QAudioEngine::start()
엔진을 시동합니다.
[slot]
void QAudioEngine::stop()
엔진을 정지합니다.
© 2025 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.