QSpatialSound Class

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

Header: #include <QSpatialSound>
CMake: find_package(Qt6 REQUIRED COMPONENTS SpatialAudio)
target_link_libraries(mytarget PRIVATE Qt6::SpatialAudio)
qmake: QT += spatialaudio
Inherits: QObject

パブリックタイプ

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

プロパティ

パブリック関数

QSpatialSound(QAudioEngine *engine)
virtual ~QSpatialSound()
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)

Notifier シグナル

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)

ノーティファイア・シグナル(Notifier signal):

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)

Notifierシグナル:

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空間に配置でき、リスナーに近いほど音量が大きくなります。

[virtual noexcept] QSpatialSound::~QSpatialSound()

音源を破棄します。

QAudioEngine *QSpatialSound::engine() const

このリスナーに関連付けられたエンジンを返す。

[slot] void QSpatialSound::pause()

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

[slot] void QSpatialSound::play()

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

[slot] void QSpatialSound::stop()

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

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。