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 |
パブリック型
プロパティ
|
パブリック関数
| 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 | audioDeviceChanged() |
| void | loadedChanged() |
| void | loopCountChanged() |
| void | loopsRemainingChanged() |
| void | mutedChanged() |
| void | playingChanged() |
| void | sourceChanged() |
| void | statusChanged() |
| void | volumeChanged() |
静的パブリックメンバー
| 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::Null | 0 | ソースが設定されていないか、ソースがnullです。 |
QSoundEffect::Loading | 1 | SoundEffect がソースを読み込もうとしています。 |
QSoundEffect::Ready | 2 | ソースが読み込まれ、再生可能な状態です。 |
QSoundEffect::Error | 3 | ソースの読み込みに失敗するなど、操作中にエラーが発生しました。 |
プロパティのドキュメント
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) |
通知シグナル:
| void | loopCountChanged() |
[read-only] loopsRemaining : int
このプロパティには、効果音が自動的に停止するまでの残りのループ数が格納されます。ただし、loops でQSoundEffect::Infinite が設定されている場合は、その値が格納されます。
アクセス関数:
| int | loopsRemaining() const |
通知シグナル:
| void | loopsRemainingChanged() |
muted : bool
このプロパティは、ミュート機能を制御する方法を提供します。値に「true 」を設定すると、このエフェクトがミュートされます。
アクセス関数:
通知シグナル:
| void | mutedChanged() |
[read-only] playing : bool
このプロパティは、効果音が再生中かどうかを示します。
アクセス関数:
| bool | isPlaying() const |
通知信号:
| void | playingChanged() |
source : QUrl
このプロパティには、再生するサウンドのURLが格納されます。SoundEffect がソースの読み込みを試みるには、そのURLが存在している必要があり、またアプリケーションが指定されたディレクトリに対する読み取り権限を持っている必要があります。
アクセス関数:
Notifierシグナル:
| void | sourceChanged() |
[read-only] status : Status
このプロパティは、QSoundEffect::Status 列挙型に基づく効果音の現在の状態を示します。
アクセス関数:
| QSoundEffect::Status | status() const |
通知シグナル:
| void | statusChanged() |
volume : float
このプロパティは、効果音の再生音量を 0.0(無音)から 1.0(最大音量)までの範囲で指定します。
アクセス関数:
通知シグナル:
| 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.