このページでは

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 空間内の可聴オブジェクトを表します。空間内での位置や向きを定義したり、再生する音を設定したり、オブジェクトの音量を指定したりすることができます。

オブジェクトは、さまざまな減衰挙動をとったり、主に一方向または球状に音を発したり、他のオブジェクトによって遮られているかのように振る舞ったりすることができます。

メンバの型に関するドキュメント

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)

通知シグナル:

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 へと段階的に減少していきます。距離が size 未満の場合は音量は一定であり、カットオフ距離を超える場合は音量はゼロになります。

アクセス関数:

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)

通知シグナル:

void loopsChanged()

manualAttenuation : float

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

アクセス機能:

float manualAttenuation() const
void setManualAttenuation(float attenuation)

通知信号:

void manualAttenuationChanged()

nearFieldGain : float

音源の近距離ゲインを定義します。有効な値は 0 から 1 の範囲です。近距離ゲインを 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)

通知信号:

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)

通知信号:

void volumeChanged()

メンバ関数のドキュメント

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

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

注: 有効なQAudioEngine

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

音源を破壊する。

QAudioEngine *QSpatialSound::engine() const

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

[slot] void QSpatialSound::pause()

音声の再生を一時停止します。play() を呼び出すと、再生が再開されます。

[slot] void QSpatialSound::play()

音声の再生を開始します。すでに音声が再生されている場合は、何も行いません。

[slot] void QSpatialSound::stop()

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

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