QSpatialSound Class

3D空間のサウンドオブジェクト。詳細...

ヘッダー #include <QSpatialSound>
CMake: find_package(Qt6 REQUIRED COMPONENTS SpatialAudio)
target_link_libraries(mytarget PRIVATE Qt6::SpatialAudio)
qmake: QT += spatialaudio
継承: QObject

パブリックな型

enum class DistanceModel { Logarithmic, Linear, ManualAttenuation }
enum Loops { Infinite, Once }

プロパティ

パブリック機能

QSpatialSound(QAudioEngine *engine)
virtual ~QSpatialSound() override
bool autoPlay() const
float directivity() const
float directivityOrder() const
float distanceCutoff() const
QSpatialSound::DistanceModel distanceModel() const
QAudioEngine *engine() const
int loops() const
float manualAttenuation() const
float nearFieldGain() const
float occlusionIntensity() const
QVector3D position() const
QQuaternion rotation() const
void setAutoPlay(bool autoPlay)
void setDirectivity(float alpha)
void setDirectivityOrder(float alpha)
void setDistanceCutoff(float cutoff)
void setDistanceModel(QSpatialSound::DistanceModel model)
void setLoops(int loops)
void setManualAttenuation(float attenuation)
void setNearFieldGain(float gain)
void setOcclusionIntensity(float occlusion)
void setPosition(QVector3D pos)
void setRotation(const QQuaternion &q)
void setSize(float size)
void setSource(const QUrl &url)
void setVolume(float volume)
float size() const
QUrl source() const
float volume() const

パブリックスロット

void pause()
void play()
void stop()

シグナル

詳細説明

QSpatialSoundは、3D空間の可聴オブジェクトを表します。空間内の位置と方向を定義し、再生するサウンドを設定し、オブジェクトの音量を定義できます。

オブジェクトは、異なる減衰挙動を持ち、主に1つの方向または球状に音を放出し、他のオブジェクトによってオクルードされたかのように振る舞うことができます。

メンバータイプ ドキュメント

enum class QSpatialSound::DistanceModel

リスナーまでの距離によって音の大きさがどのように変化するかを定義する。

定数説明
QSpatialSound::DistanceModel::Logarithmic0音量は距離とともに対数的に減少する。
QSpatialSound::DistanceModel::Linear1音量は距離とともに直線的に減少する。
QSpatialSound::DistanceModel::ManualAttenuation2減衰は、manualAttenuation プロパティを使用して手動で定義します。

enum QSpatialSound::Loops

以下の値を使用して、サウンド再生のループを制御できます:

定数説明
QSpatialSound::Infinite-1無限に再生
QSpatialSound::Once11回再生

プロパティの説明

autoPlay : bool

ソースが指定されたときにサウンドを自動的に再生開始するかどうかを決定する。

デフォルト値はtrue

アクセス関数:

bool autoPlay() const
void setAutoPlay(bool autoPlay)

Notifierシグナル:

void autoPlayChanged()

directivity : float

音源の指向性を定義します。0を指定すると全方向に均等に音が放射され、1を指定すると主に前方向に音が放射されます。

有効な値は0から1で、デフォルトは0。

アクセス関数

float directivity() const
void setDirectivity(float alpha)

通知シグナル

void directivityChanged()

directivityOrder : float

音源の指向性の次数を定義する。次数が高いほど、サウンドコーンの定位がシャープになる。

このプロパティの最小値およびデフォルトは1です。

アクセス関数:

float directivityOrder() const
void setDirectivityOrder(float alpha)

通知信号:

void directivityOrderChanged()

distanceCutoff : float

音源からの音が遮断される距離を定義します。リスナーがサウンドオブジェクトからカットオフ距離以上離れると、音は聞こえなくなります。

アクセス機能:

float distanceCutoff() const
void setDistanceCutoff(float cutoff)

通知シグナル

void distanceCutoffChanged()

distanceModel : DistanceModel

この音源の距離モデルを定義する。音量は、size からdistanceCutoff にスケールダウンし始める。 音量は、サイズより小さい距離では一定で、カットオフ距離より大きい距離ではゼロになる。

アクセス機能:

QSpatialSound::DistanceModel distanceModel() const
void setDistanceModel(QSpatialSound::DistanceModel model)

通知シグナル:

void distanceModelChanged()

QSpatialSound::DistanceModelも参照

loops : int

プレーヤーが停止するまでに何回サウンドを再生するかを決定する。現在のサウンドを永遠にループ再生するには、QSpatialSound::Infinite を設定します。

デフォルト値は1

アクセス関数:

int loops() const
void setLoops(int loops)

Notifierシグナル:

void loopsChanged()

manualAttenuation : float

distanceModelQSpatialSound::DistanceModel::ManualAttenuation に設定されている場合、手動減衰係数を定義します。

アクセス機能:

float manualAttenuation() const
void setManualAttenuation(float attenuation)

通知信号:

void manualAttenuationChanged()

nearFieldGain : float

音源のニアフィールドゲインを定義します。ニアフィールドゲインを1に設定すると、リスナーに非常に近い距離のサウンド信号の音量が約20 dB上がります。

アクセス機能

float nearFieldGain() const
void setNearFieldGain(float gain)

ノティファイア信号

void nearFieldGainChanged()

occlusionIntensity : float

オブジェクトがどの程度オクルードされているかを定義します。0はオブジェクトが全くオクルードされていないことを意味し、1は音源が他のオブジェクトによって完全にオクルードされていることを意味します。

完全にオクルードされたオブジェクトはまだ聞こえますが、特に高い周波数は減衰します。さらに、オブジェクトは部屋の残響や反射の発生に関与します。

1より大きな値を設定すると、音源からの直接音をさらに減衰させることができます。

デフォルトは0です。

アクセス関数

float occlusionIntensity() const
void setOcclusionIntensity(float occlusion)

通知シグナル

void occlusionIntensityChanged()

position : QVector3D

3D空間における音源の位置を定義する。デフォルトではセンチメートル単位。

アクセス機能:

QVector3D position() const
void setPosition(QVector3D pos)

Notifierシグナル:

void positionChanged()

QAudioEngine::distanceScaleも参照

rotation : QQuaternion

3D空間における音源の向きを定義する。

アクセス機能

QQuaternion rotation() const
void setRotation(const QQuaternion &q)

ノティファイア信号

void rotationChanged()

size : float

音源のサイズを定義する。リスナーがサイズよりもサウンドオブジェクトに近い場合、音量は一定に保たれます。サイズはオクルージョンの計算にも使用され、大きな音源は壁によって部分的にオクルージョンされることがあります。

アクセス関数

float size() const
void setSize(float size)

通知シグナル

void sizeChanged()

source : QUrl

再生するサウンドのソースファイル。

アクセス機能:

QUrl source() const
void setSource(const QUrl &url)

通知シグナル

void sourceChanged()

volume : float

サウンドの音量を設定します。

0から1の間の値は音を減衰させ、1以上の値はさらにゲインを上げます。

アクセス機能:

float volume() const
void setVolume(float volume)

Notifierシグナル

void volumeChanged()

メンバ関数ドキュメント

[explicit] QSpatialSound::QSpatialSound(QAudioEngine *engine)

engine 用の空間音源を作成します。オブジェクトは3D空間に配置でき、リスナーに近いほど音量が大きくなる。

[override virtual noexcept] QSpatialSound::~QSpatialSound()

音源を破壊する。

QAudioEngine *QSpatialSound::engine() const

このリスナーに関連付けられているエンジンを返します。

[slot] void QSpatialSound::pause()

サウンド再生を一時停止する。play() を呼び出すと再生を続行します。

[slot] void QSpatialSound::play()

サウンドの再生を開始します。すでに音が再生されている場合は何もしません。

[slot] void QSpatialSound::stop()

サウンドの再生を停止し、現在の位置と現在のループカウントを0にリセットする。play ()を呼び出すと、サウンドファイルの先頭から再生を開始する。

© 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.