QSoundEffect Class

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

ヘッダー #include <QSoundEffect>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake QT += multimedia
QML で SoundEffect
継承: QObject

パブリックな型

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

プロパティ

パブリック機能

QSoundEffect(QObject *parent = nullptr)
QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr)
virtual ~QSoundEffect() override
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)

通知シグナル

void audioDeviceChanged()

loops : int

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

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

アクセス関数:

int loopCount() const
void setLoopCount(int loopCount)

通知シグナル:

[read-only] loopsRemaining : const int

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

アクセス関数

int loopsRemaining() const

通知シグナル

muted : bool

このプロパティは、ミュートを制御する方法を提供します。値をtrue に設定すると、このエフェクトはミュートされます。

アクセス関数

bool isMuted() const
void setMuted(bool muted)

通知シグナル:

void mutedChanged()

[read-only] playing : const bool

説明: 効果音が再生されているか否かを示す。

アクセス関数

bool isPlaying() const

通知シグナル

source : QUrl

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

アクセス関数

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

通知シグナル

void sourceChanged()

[read-only] status : const Status

このプロパティは、QSoundEffect::Status 列挙から、効果音の現在の状態を示す。

アクセス関数

QSoundEffect::Status status() const

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

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 を作成します。

[override 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 が true の場合、再生はミュート(消音)され、そうでない場合は、現在指定されている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 を返します。

注: プロパティソースに対するゲッター関数。

setSource()も参照

[signal] void QSoundEffect::sourceChanged()

sourceChanged シグナルは、ソースが変更されたときに発信されます。

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

QSoundEffect::Status QSoundEffect::status() const

このサウンドエフェクトの現在のステータスを返します。

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

[signal] void QSoundEffect::statusChanged()

statusChanged シグナルは、ステータスプロパティが変更されたときに発せられる。

注: プロパティ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 プロパティのノーティファイア・シグナル。

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