このページでは

SoundEffect QML Type

SoundEffect 型は、QML で効果音を再生する方法を提供します。詳細...

Import Statement: import QtMultimedia
In C++: QSoundEffect

プロパティ

信号

方法

詳細説明

このタイプでは、非圧縮のオーディオファイル(通常はWAVファイル)を、一般的に低レイテンシで再生することができ、ユーザーの操作に対する「フィードバック」タイプのサウンド(例:仮想キーボードの音、ポップアップダイアログの肯定または否定のフィードバック、ゲームサウンドなど)に適しています。 低レイテンシーが重要でない場合は、MediaPlayer タイプを使用することを検討してください。このタイプは、より幅広いメディア形式をサポートしており、リソース消費も少ないからです。

通常、サウンドエフェクトは再利用されるべきであり、これにより、すべての解析と準備を事前に完了させ、必要なときにのみトリガーすることができます。QML では、SoundEffect インスタンスを宣言して他の場所で参照することができるため、これを簡単に実現できます。

次の例は、マウスクリック時に WAV ファイルを再生します。

Text {
    text: "Click Me!";
    font.pointSize: 24;
    width: 150; height: 50;

    SoundEffect {
        id: playSound
        source: "soundeffect.wav"
    }
    MouseArea {
        id: playArea
        anchors.fill: parent
        onPressed: { playSound.play() }
    }
}

注: QSoundEffect は モノラルまたはステレオのサウンドファイルのみをサポートしています。ほとんどのプラットフォームで一般的なネイティブサンプリングレートである48000Hzのサンプリングレートを持つサウンドファイルの使用が推奨されます(QAudioDevice::preferredFormat())。

プロパティのドキュメント

loops : int

このプロパティは、サウンドが再生される回数を指定します。値が 0 または 1 の場合、サウンドは 1 回だけ再生されます。無限ループを有効にするには、SoundEffect.Infinite に設定してください。

この値は効果音が再生中の変更が可能で、その場合は残りのループ回数が新しい値に更新されます。

loopsRemaining : int [read-only]

このプロパティには、効果音が自動的に停止するまでの残りのループ数、またはSoundEffect が格納されます。loops で「Infinite」が設定されている場合は「Infinite」となります。

muted : bool

このプロパティは、ミュート設定を制御する手段を提供します。値が「true 」の場合、このエフェクトはミュートされます。それ以外の場合は、現在指定されている「volume 」に従って再生が行われます。

playing : bool [read-only]

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

source : url

このプロパティには、再生するサウンドのURLが格納されます。SoundEffect がソースの読み込みを試みるには、そのURLが存在していること、およびアプリケーションが指定されたディレクトリに対する読み取り権限を持っている必要があります。対象のソースがローカルファイルである場合、URLは絶対パスまたは(SoundEffect を宣言したファイルを基準とした)相対パスのいずれかで指定できます。

status : enumeration [read-only]

このプロパティは、SoundEffect で列挙されているSoundEffect の現在のステータスを示します。可能なステータスは以下の通りです。

値説明
SoundEffect.Nullソースが設定されていないか、ソースが null です。
SoundEffect.LoadingSoundEffect がソースの読み込みを試みています。
SoundEffect.Readyソースが読み込まれ、再生の準備が整いました。
SoundEffect.Errorソースの読み込みに失敗するなど、操作中にエラーが発生しました。

volume : real

このプロパティは、効果音の再生音量を指定します。

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

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

UI の音量コントロールは、通常、非線形にスケーリングされるべきです。たとえば、対数スケールを使用すると、知覚される音量が線形に変化し、これはユーザーが音量コントロールに通常期待する動作です。詳細については、convertVolume() を参照してください。

Signal ドキュメント

loadedChanged()

loadedChanged シグナルは、読み込み状態が変化したときに発信されます。

注: 対応するハンドラは `onLoadedChanged` です。

loopCountChanged()

loopCountChanged シグナルは、ループの初期回数が変更されたときに発信されます。

注: 対応するハンドラは `onLoopCountChanged` です。

loopsRemainingChanged()

ループの残り回数が変更された際に、「loopsRemainingChanged 」シグナルが発信されます。

注: 対応するハンドラは `onLoopsRemainingChanged` です。

mutedChanged()

mutedChanged シグナルは、ミュート状態が変更されたときに発信されます。

注: 対応するハンドラは onMutedChanged です。

playingChanged()

playingChanged シグナルは、playing プロパティが変更されたときに発生します。

注: 対応するハンドラは `onPlayingChanged` です。

sourceChanged()

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

注: 対応するハンドラは `onSourceChanged` です。

statusChanged()

status プロパティが変更された際、statusChanged シグナルが発火します。

注: 対応するハンドラは `onStatusChanged` です。

volumeChanged()

volumeChanged シグナルは、音量が変更されたときに発火します。

注: 対応するハンドラは `onVolumeChanged` です。

メソッドのドキュメント

bool isLoaded()

効果音がsource の読み込みを完了したかどうかを返します。

void play()

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

これは、`SoundEffect` のデフォルトのメソッドです。

SoundEffect {
    id: playSound
    source: "soundeffect.wav"
}
MouseArea {
    id: playArea
    anchors.fill: parent
    onPressed: { playSound.play() }
}

void stop()

現在再生中の再生を停止します。

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