このページでは

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-2setLoopCount() のパラメータとして、無限ループを実現するために使用される

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)

通知シグナル:

[read-only] loopsRemaining : int

このプロパティには、効果音が自動的に停止するまでの残りのループ数が格納されます。ただし、loops でQSoundEffect::Infinite が設定されている場合は、その値が格納されます。

アクセス関数:

int loopsRemaining() const

通知シグナル:

muted : bool

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

アクセス関数:

bool isMuted() const
void setMuted(bool muted)

通知シグナル:

void mutedChanged()

[read-only] playing : bool

このプロパティは、効果音が再生中かどうかを示します。

アクセス関数:

bool isPlaying() const

通知信号:

source : QUrl

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

アクセス関数:

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

Notifierシグナル:

void sourceChanged()

[read-only] status : 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)

指定されたaudioDevice およびparent を使用して、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` に対するNotifier シグナルです。

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を返します

注: プロパティ `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 」の通知 シグナルです。

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