QSoundEffect Class

QSoundEffectクラスは、低レイテンシーの効果音を再生する方法を提供します。詳細...

Header: #include <QSoundEffect>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
In QML: SoundEffect
Inherits: QObject

パブリックタイプ

enum Loop { Infinite }
enum Status { Null, Loading, Ready, Error }

プロパティ

パブリック関数

QSoundEffect(QObject *parent = nullptr)
QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr)
virtual ~QSoundEffect()
QAudioDevice audioDevice()
bool isLoaded() const
bool isMuted() const
bool isPlaying() const
int loopCount() const
int loopsRemaining() const
void setAudioDevice(const QAudioDevice &device)
void setLoopCount(int loopCount)
void setMuted(bool muted)
void setSource(const QUrl &url)
void setVolume(float volume)
QUrl source() const
QSoundEffect::Status status() const
float volume() const

パブリックスロット

void play()
void stop()

シグナル

静的パブリックメンバ

QStringList supportedMimeTypes()

詳しい説明

このクラスは、非圧縮のオーディオファイル(一般的にはWAVファイル)を一般的に低レイテンシーで再生することができ、ユーザーのアクションに応答する「フィードバック」タイプのサウンド(仮想キーボードのサウンド、ポップアップダイアログの正負のフィードバック、ゲームのサウンドなど)に適しています。低レイテンシーが重要でない場合は、QMediaPlayer 。多様なメディアフォーマットをサポートし、リソース消費も少ないからです。

この例では、ループするやや静かな効果音を再生しています:

QSoundEffect effect;
effect.setSource(QUrl::fromLocalFile("engine.wav"));
effect.setLoopCount(QSoundEffect::Infinite);
effect.setVolume(0.25f);
effect.play();

通常、サウンドエフェクトは再利用されるべきで、これによって全ての解析と 準備が前もって行われ、必要な時だけトリガーされます。これにより、低レイテンシのオーディオ再生が可能になります。

MyGame()
    : m_explosion(this)
{
    m_explosion.setSource(QUrl::fromLocalFile("explosion.wav"));
    m_explosion.setVolume(0.25f);

    // Set up click handling etc.
    connect(clickSource, &QPushButton::clicked, &m_explosion, &QSoundEffect::play);
}
private:
QSoundEffect m_explosion;

QSoundEffectは、低レイテンシー再生を実現するために若干多くのリソースを必要とするため、プラットフォームは同時に再生する効果音の数を制限する場合があります。

メンバ型ドキュメント

enum QSoundEffect::Loop

定数説明
QSoundEffect::Infinite-2無限ループのためにsetLoopCount() のパラメータとして使用されます。

enum QSoundEffect::Status

定数説明
QSoundEffect::Null0ソースが設定されていないか、ソースが NULL です。
QSoundEffect::Loading1SoundEffect はソースをロードしようとしています。
QSoundEffect::Ready2ソースはロードされ、再生する準備ができている。
QSoundEffect::Error3ソースのロードに失敗するなど、操作中にエラーが発生した。

プロパティの説明

audioDevice : QAudioDevice

QAudioDevice インスタンスを返します。

アクセス関数

QAudioDevice audioDevice()
void setAudioDevice(const QAudioDevice &device)

Notifier シグナル:

void audioDeviceChanged()

loops : int

このプロパティは、サウンドの再生回数を保持する。0または1の値は、サウンドが1回だけ再生されることを意味します。SoundEffect.Infiniteに設定すると、無限ループが可能になります。

この値は、サウンドエフェクトの再生中に変更することができ、その場合、残りのループが新しい値に更新されます。

アクセス関数:

int loopCount() const
void setLoopCount(int loopCount)

Notifierシグナル:

[read-only] loopsRemaining : const int

このプロパティには、サウンドエフェクトが単独で停止するまでの残りループ数、またはloops で設定されている場合はQSoundEffect::Infinite が含まれます。

アクセス関数

int loopsRemaining() const

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

muted : bool

このプロパティは、ミュートをコントロールする方法を提供します。値がtrue の場合、このエフェクトはミュートされます。

アクセス関数:

bool isMuted() const
void setMuted(bool muted)

ノーティファイアシグナル:

void mutedChanged()

[read-only] playing : const bool

このプロパティは、サウンドエフェクトが再生中かどうかを示します。

アクセス関数

bool isPlaying() const

Notifierシグナル

source : QUrl

このプロパティは、再生するサウンドのURLを保持します。SoundEffect がソースのロードを試みるには、URL が存在し、アプリケーショ ンが指定されたディレクトリに読み込み権限を持っている必要があります。

アクセス関数

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

Notifier シグナル:

void sourceChanged()

[read-only] status : const Status

このプロパティは、QSoundEffect::Status の列挙から、サウンドエフェクトの現在のステータスを示します。

アクセス関数

QSoundEffect::Status status() const

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

void statusChanged()

volume : float

このプロパティは、効果音再生の音量を 0.0(無音)から 1.0(フルボリューム) まで保持します。

アクセス関数

float volume() const
void setVolume(float volume)

ノーティファイアシグナル:

void volumeChanged()

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

[explicit] QSoundEffect::QSoundEffect(QObject *parent = nullptr)

与えられたparent を持つ QSoundEffect を作成します。

[explicit] QSoundEffect::QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr)

与えられたaudioDeviceparent を持つ QSoundEffect を作成します。

[virtual noexcept] QSoundEffect::~QSoundEffect()

このサウンドエフェクトを破棄します。

bool QSoundEffect::isLoaded() const

サウンドエフェクトがsource() のロードを終了したかどうかを返します。

bool QSoundEffect::isMuted() const

このサウンドエフェクトがミュートされているかどうかを返します。

注: プロパティmuted のゲッター関数。

bool QSoundEffect::isPlaying() const

効果音が再生中の場合は true を、そうでない場合は false を返す。

注: playing プロパティのゲッター関数。

[signal] void QSoundEffect::loadedChanged()

loadedChanged シグナルは、ロード状態が変化したときに発せられる。

int QSoundEffect::loopCount() const

この効果音が停止するまでに再生される合計回数を返します。

現在残っているループ回数については、loopsRemaining ()メソッドを参照。

注: プロパティloops のゲッター関数。

setLoopCount()も参照

[signal] void QSoundEffect::loopCountChanged()

loopCountChanged シグナルは、初期ループ数が変更されたときに発せられる。

注: プロパティloops に対するノーティファイア・シグナル。

[signal] void QSoundEffect::loopsRemainingChanged()

loopsRemainingChanged シグナルは、残りのループ回数が変更されたときに発せられる。

注: loopsRemaining プロパティのノーティファイアシグナル。

[signal] void QSoundEffect::mutedChanged()

mutedChanged シグナルは、ミュート状態が変化したときに発せられる。

注: muted プロパティのノーティファイアシグナル。

[slot] void QSoundEffect::play()

効果音の再生を開始し、loopsプロパティで指定された回数だけ効果音をループさせる。

[signal] void QSoundEffect::playingChanged()

再生プロパティが変更されると、playingChanged シグナルが発信される。

注: プロパティplaying に対するノーティファイアシグナル。

void QSoundEffect::setLoopCount(int loopCount)

この効果音の総再生回数をloopCount に設定します。

ループカウントを0または1に設定すると、効果音は1回だけ再生されます。QSoundEffect::Infinite を渡すと、無限に繰り返します。効果音の再生中にループ回数を変更することも可能で、その場合は残りのループが新しいloopCount に更新されます。

注: プロパティloops のセッター関数。

loopCount() およびloopsRemaining()も参照

void QSoundEffect::setMuted(bool muted)

このサウンドエフェクトの再生をミュートするかどうかを設定します。

muted が真の場合、再生はミュート(消音)され、そうでない場合は、現在指定されているvolume() で再生されます。

注: プロパティmuted のセッター関数。

isMuted()も参照

void QSoundEffect::setSource(const QUrl &url)

再生する現在の URL をurl に設定する。

備考: プロパティsource に対するセッター関数。

source()も参照

void QSoundEffect::setVolume(float volume)

効果音の音量をvolume に設定する。

音量は、0.0 (無音)から1.0 (フル音量)まで線形にスケーリングされます。この範囲外の値はクランプされます。

デフォルトの音量は1.0 です。

UIの音量コントロールは通常、非線形にスケーリングされるべきです。例えば、対数スケールを使用すると、知覚されるラウドネスが直線的に変化します。詳細はQtAudio::convertVolume() を参照。

注: プロパティvolume のセッター関数。

volume()も参照

QUrl QSoundEffect::source() const

現在再生しているソースの URL を返す。

注: プロパティ source のゲッター関数。

setSource()も参照

[signal] void QSoundEffect::sourceChanged()

sourceChanged シグナルは、ソースが変更されたときに発せられる。

注: プロパティsource に対するノーティファイアシグナル。

QSoundEffect::Status QSoundEffect::status() const

この効果音の現在の状態を返す。

注: プロパティ status のゲッター関数。

[signal] void QSoundEffect::statusChanged()

statusChanged シグナルは、status プロパティが変更された時に発せられる。

注: プロパティstatus に対するノーティファイアシグナル。

[slot] void QSoundEffect::stop()

現在の再生を停止する。

[static] QStringList QSoundEffect::supportedMimeTypes()

このプラットフォームでサポートされている MIME タイプのリストを返す。

float QSoundEffect::volume() const

現在の効果音の音量を、0.0(無音)から 1.0(最大音量)の範囲で返します。

注: Volumeプロパティのゲッター関数です。

setVolume()も参照のこと

[signal] void QSoundEffect::volumeChanged()

音量が変更されると、volumeChanged シグナルが発信される。

注: プロパティvolume のノーティファイア・シグナル。

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