SoundEffect QML 类型

SoundEffect 类型提供了一种在 QML 中播放声音效果的方法。更多...

导入声明import QtMultimedia
实例化 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() }
    }
}

由于 SoundEffect 需要略微更多的资源以实现低延迟播放,因此平台可能会限制同时播放的声音效果的数量。

属性文档

循环次数 : int

此属性表示声音播放的次数。0 或 1 的值表示声音将只播放一次;设置为 SoundEffect.Infinite 以启用无限循环。

在声音效果播放时可以更改此值,在这种情况下,它将更新剩余循环到新值。


剩余循环次数 : int [只读]

该属性包含在音效自行停止前剩余的循环次数,或者SoundEffect。如果已在loops中设置,则为无限。


muted : bool

此属性提供了一种控制静音的方法。值为true将使此效果静音。否则,播放将使用当前指定的volume


playing : bool [只读]

此属性表示音效是否正在播放。


source : url

该属性保存要播放的音频的URL。为了SoundEffect尝试加载源,URL必须存在,并且应用程序必须具有指定目录的读取权限。如果所需源是本地文件,可以使用绝对或相对(相对于声明了SoundEffect的文件)路径。


status : 枚举 [只读]

此属性表示SoundEffect的当前状态,如下所示。

描述
SoundEffect.Null未设置源或源为null。
SoundEffect.LoadingSoundEffect正在尝试加载源。
SoundEffect.Ready源已加载并准备播放。
SoundEffect.Error在操作过程中发生了错误,例如加载源失败。

volume : qreal

该属性保存音效播放的音量。

音量从0.0(静音)线性缩放到1.0(全音量)。范围之外的值将被限制。

默认音量是1.0

UI音量控制通常应按非线性缩放。例如,使用对数刻度将产生感知响度的线性变化,这是用户从音量控制中通常会期望得到的。有关详细信息,请参阅convertVolume()。


信号文档

loadedChanged()

当加载状态改变时,发出loadedChanged信号。

注意:相应的处理程序是onLoadedChanged


loopCountChanged()

当初始循环次数改变时,发出loopCountChanged信号。

注意:相应的处理程序是onLoopCountChanged


loopsRemainingChanged()

当剩余循环次数改变时,发出loopsRemainingChanged信号。

注意:相应的处理程序是onLoopsRemainingChanged


mutedChanged()

当静音状态改变时,发出mutedChanged信号。

注意:相应的处理程序是onMutedChanged


playingChanged()

当播放属性改变时,发出playingChanged信号。

注意:相应的处理程序是onPlayingChanged


sourceChanged()

当源改变时,发出sourceChanged信号。

注意:相应的处理程序是onSourceChanged


statusChanged()

当状态属性改变时,会发出 statusChanged 信号。

注意:相应的处理程序是 onStatusChanged


volumeChanged()

当音量改变时,会发出 volumeChanged 信号。

注意:相应的处理程序是 onVolumeChanged


方法文档

bool isLoaded()

返回声音效果是否已经完成加载 source


play()

开始播放声音效果,根据 loops 属性指定的次数循环效果。

这是 SoundEffect 的默认方法。

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

stop()

停止当前播放。


© 2024 Qt 公司 Ltd。此处包含的文档贡献属于其各自所有者。此处提供的文档是根据自由软件开发基金会(Free Software Foundation)发布的、题为“GNU 自由文档许可证版本 1.3”(GNU Free Documentation License version 1.3)的条款许可的。Qt 及相关标志是芬兰和/或世界上其他国家的 Qt 公司 Ltd 的商标。所有其他商标均为其各自所有者的财产。