class QSoundEffect#

QSoundEffect类提供了一种播放低延迟音效的方法。 更多...

Inheritance diagram of PySide6.QtMultimedia.QSoundEffect

概要#

属性#

方法#

槽函数#

信号#

静态函数#

注意

本文档可能包含了从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建问题报告来与我们联系。

详细描述#

警告

本节包含从C++自动翻译到Python的代码片段,可能存在错误。

此类允许您以较低的延迟方式播放未压缩的音频文件(通常是WAV文件),并且适合用户操作时响应的“反馈”类型的声音(例如,虚拟键盘声音、弹出对话框的正面或负面反馈,或游戏声音)。如果低延迟不是那么重要,可以考虑使用QMediaPlayer类,因为它支持更广泛的媒体格式,并且对资源的影响较小。

以下示例展示了如何播放循环的、相对安静的声音效果

effect = QSoundEffect()
effect.setSource(QUrl.fromLocalFile("engine.wav"))
effect.setLoopCount(QSoundEffect.Infinite)
effect.setVolume(0.25f)
effect.play()

通常声音效果应重复使用,这样可以提前完成所有解析和准备工作,并在需要时触发。这有助于降低音频播放的延迟。

    MyGame()
    self.m_explosion = self

        m_explosion.setSource(QUrl.fromLocalFile("explosion.wav"))
        m_explosion.setVolume(0.25f)
        # Set up click handling etc.
        clickSource.clicked.connect(m_explosion.play)

# private
    m_explosion = QSoundEffect()

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

class Loop#

常量

描述

QSoundEffect.Infinite

作为setLoopCount()的参数用于无限循环

class Status#

常量

描述

QSoundEffect.Null

没有设置源或源为空。

QSoundEffect.Loading

声音特效正在尝试加载源。

QSoundEffect.Ready

源已加载并准备播放。

QSoundEffect.Error

在操作过程中发生错误,例如加载源失败。

注意

可以直接使用属性,当使用from __feature__ import true_property时或者通过访问函数否则。

property audioDeviceᅟ: QAudioDevice#

返回 QAudioDevice 实例。

访问函数
属性 loopsᅟ: int#

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

可以在声音效果播放时更改此值,此时将更新剩余的循环次数到新值。

访问函数
属性 loopsRemainingᅟ: int#

此属性包含声音效果自动停止前剩余的循环次数,如果已在 loops 中设置 Infinite,则此值将被设置为 Infinite

访问函数
属性 mutedᅟ: bool#

此属性提供了一种控制静音的方式。值为 true 将静音此效果。

访问函数
属性 playingᅟ: bool#

此属性指示声音效果是否正在播放。

访问函数
属性 sourceᅟ: QUrl#

此属性包含要播放的声音的 URL。对于 SoundEffect 尝试加载源,URL 必须存在,并且应用程序必须具有指定目录的读权限。

访问函数
属性 status: QSoundEffect.Status#

此属性表示声效当前的 Status 枚举状态。

访问函数
属性 volume: float#

此属性包含声效播放的音量,从 0.0 (静音)到 1.0 (全音量)。

访问函数
__init__(audioDevice[, parent=None])#
参数:

创建一个具有给定 audioDeviceparentQSoundEffect

__init__([parent=None])
参数:

parentQObject

创建一个具有给定 parentQSoundEffect

audioDevice()#
返回类型:

QAudioDevice

另请参阅

setAudioDevice()

属性 audioDevice 的获取器。

audioDeviceChanged()#

属性 audioDevice 的通知信号。

isLoaded()#
返回类型:

bool

返回声音效果是否完成了对 source() 的加载。

isMuted()#
返回类型:

bool

返回当前声音效果是否被静音

muted 属性的获取器。

isPlaying()#
返回类型:

bool

如果声音效果目前正在播放,则返回 true,否则返回 false

playing 属性的获取器。

loadedChanged()#

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

loopCount()#
返回类型:

int

返回声音效果在停止前将要播放的总次数。

请参见 loopsRemaining() 方法,以获得当前剩余的循环次数。

另请参阅

setLoopCount()

loops 属性的获取器。

loopCountChanged()#

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

loops 属性的通知信号。

loopsRemaining()#
返回类型:

int

loopsRemaining 属性的获取器。

loopsRemainingChanged()#

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

loopsRemaining 属性的通知信号。

mutedChanged()#

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

属性 muted 的通知信号。

play()#

启动声音效果播放,循环播放次数由 loops 属性指定。

playingChanged()#

当 playing 属性发生变化时,将发出 playingChanged 信号。

属性 playing 的通知信号。

setAudioDevice(device)#
参数:

deviceQAudioDevice

另请参阅

audioDevice()

设置属性 audioDevice 的赋值器。

setLoopCount(loopCount)#
参数:

loopCount – int

将播放此声音效果的次数总数设置为 loopCount

将循环次数设置为 0 或 1 意味着声音效果将只播放一次;传递 QSoundEffect::Infinite 以无限循环。在声音效果播放过程中可以更改循环次数,在这种情况下,它将更新剩余的循环到新的 loopCount

设置属性 loops 的赋值器。

setMuted(muted)#
参数:

muted – bool

设置是否静音此声音效果的播放。

如果 muted 为 true,播放将被静音(无声),否则播放将以指定的当前 volume() 进行。

另请参阅

isMuted()

设置属性 muted 的赋值器。

setSource(url)#
参数:

urlQUrl

将当前要播放的URL设置为url

另请参阅

source()

属性 sourceᅟ 的设置器。

setVolume(volume)#
参数:

volume – float

将声音效果的音量设置为volume

音量在0.0(静音)到1.0(全音量)之间线性缩放。超出此范围的值将被钳位。

默认音量为1.0

UI音量控件通常应进行非线性缩放。例如,使用对数刻度将产生感知响度的线性变化,这是用户通常期望的音量控制方式。有关更多信息,请参阅convertVolume()

另请参阅

volume()

属性 volumeᅟ 的设置器。

source()#
返回类型:

QUrl

返回当前要播放的源URL

另请参阅

setSource()

属性 sourceᅟ 的获取器。

sourceChanged()#

当源变更时发出 sourceChanged 信号。

属性 sourceᅟ 的通知信号。

status()#
返回类型:

状态

返回当前声音效果的状态。

属性 statusᅟ 的获取器。

statusChanged()#

当状态属性变更时发出 statusChanged 信号。

属性 statusᅟ 的通知信号。

stop()#

停止当前播放。

static supportedMimeTypes()#
返回类型:

字符串列表

返回此平台支持的所有MIME类型列表。

volume()#
返回类型:

浮点数

返回此音效的当前音量,范围从0.0(静音)到1.0(最大音量)。

另请参阅

setVolume()

属性 volume 的获取器。

volumeChanged()#

当音量发生变化时,会触发 volumeChanged 信号。

属性 volume 的通知信号。