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 | autoPlayChanged() |
void | directivityChanged() |
void | directivityOrderChanged() |
void | distanceCutoffChanged() |
void | distanceModelChanged() |
void | loopsChanged() |
void | manualAttenuationChanged() |
void | nearFieldGainChanged() |
void | occlusionIntensityChanged() |
void | positionChanged() |
void | rotationChanged() |
void | sizeChanged() |
void | sourceChanged() |
void | volumeChanged() |
詳細説明
QSpatialSoundは、3D空間の可聴オブジェクトを表します。空間内の位置と方向を定義し、再生するサウンドを設定し、オブジェクトの音量を定義できます。
オブジェクトは、異なる減衰挙動を持ち、主に1つの方向または球状に音を放出し、他のオブジェクトによってオクルードされたかのように振る舞うことができます。
メンバータイプ ドキュメント
enum class QSpatialSound::DistanceModel
音の大きさがリスナーまでの距離によってどのように変化するかを定義します。
定数 | 値 | 説明 |
---|---|---|
QSpatialSound::DistanceModel::Logarithmic | 0 | 音量は距離とともに対数的に減少する。 |
QSpatialSound::DistanceModel::Linear | 1 | 音量は距離とともに直線的に減少する。 |
QSpatialSound::DistanceModel::ManualAttenuation | 2 | 減衰は、manualAttenuation プロパティを使用して手動で定義します。 |
enum QSpatialSound::Loops
以下の値を使用して、サウンド再生ループを制御できます:
定数 | 値 | 説明 |
---|---|---|
QSpatialSound::Infinite | -1 | 無限に再生 |
QSpatialSound::Once | 1 | 1回再生 |
プロパティ説明
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
distanceModel がQSpatialSound::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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。