PySide6.QtMultimedia.QSoundEffect

class QSoundEffect

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

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

SoundEffect 正在尝试加载源。

QSoundEffect.Ready

源已加载并准备好播放。

QSoundEffect.Error

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

注意

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

property audioDeviceᅟ: QAudioDevice

返回QAudioDevice实例。

Access functions:
property loopsᅟ: int

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

可以在音效播放时更改该值,在这种情况下,它将更新剩余循环次数为新值。

Access functions:
property loopsRemainingᅟ: int

此属性包含音效在自动停止之前剩余的循环次数,如果在loops中设置为Infinite,则表示无限循环。

Access functions:
property mutedᅟ: bool

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

Access functions:
property playingᅟ: bool

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

Access functions:
property sourceᅟ: QUrl

此属性保存要播放的声音的URL。为了使SoundEffect尝试加载源,URL必须存在,并且应用程序必须在指定目录中具有读取权限。

Access functions:
property statusᅟ: QSoundEffect.Status

此属性表示来自Status枚举的音效的当前状态。

Access functions:
property volumeᅟ: float

此属性保存音效播放的音量,范围从0.0(静音)到1.0(最大音量)。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

使用给定的parent创建一个QSoundEffect

__init__(audioDevice[, parent=None])
Parameters:

使用给定的 audioDeviceparent 创建一个 QSoundEffect

audioDevice()
Return type:

QAudioDevice

另请参阅

setAudioDevice()

属性 audioDeviceᅟ 的获取器。

audioDeviceChanged()

属性 audioDeviceᅟ 的通知信号。

isLoaded()
Return type:

布尔

返回音效是否已完成加载source()

isMuted()
Return type:

布尔

返回此音效是否静音

属性 mutedᅟ 的获取器。

isPlaying()
Return type:

布尔

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

属性 playingᅟ 的获取器。

loadedChanged()

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

loopCount()
Return type:

整数

返回此音效在停止前将被播放的总次数。

查看loopsRemaining()方法以获取当前剩余的循环次数。

另请参阅

setLoopCount()

属性 loopsᅟ 的获取器。

loopCountChanged()

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

属性 loopsᅟ 的通知信号。

loopsRemaining()
Return type:

整数

属性 loopsRemainingᅟ 的获取器。

loopsRemainingChanged()

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

属性 loopsRemainingᅟ 的通知信号。

mutedChanged()

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

属性 mutedᅟ 的通知信号。

play()

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

playingChanged()

playingChanged 信号发出时,表示 playing 属性已更改。

属性 playingᅟ 的通知信号。

setAudioDevice(device)
Parameters:

设备QAudioDevice

另请参阅

audioDevice()

属性 audioDeviceᅟ 的设置器。

setLoopCount(loopCount)
Parameters:

loopCount – int

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

将循环计数设置为0或1意味着音效将只播放一次;传递QSoundEffect::Infinite以无限重复。在音效播放时,可以更改循环计数,此时它将更新剩余循环次数为新的loopCount

属性 loopsᅟ 的设置器。

setMuted(muted)
Parameters:

muted – 布尔值

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

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

另请参阅

isMuted()

属性 mutedᅟ 的设置器。

setSource(url)
Parameters:

urlQUrl

将当前播放的URL设置为url

另请参阅

source()

属性 sourceᅟ 的设置器。

setVolume(volume)
Parameters:

volume – 浮点数

将音效音量设置为 volume

音量从0.0(静音)线性缩放到1.0(最大音量)。超出此范围的值将被限制。

默认音量为1.0

UI音量控制通常应该以非线性方式缩放。例如,使用对数比例将产生感知音量的线性变化,这是用户通常期望的音量控制效果。有关更多详细信息,请参见convertVolume()

另请参阅

volume()

属性 volumeᅟ 的设置器。

source()
Return type:

QUrl

返回当前播放源的URL

另请参阅

setSource()

属性 sourceᅟ 的获取器。

sourceChanged()

当源发生变化时,会发出sourceChanged信号。

属性 sourceᅟ 的通知信号。

status()
Return type:

状态

返回此音效的当前状态。

属性 statusᅟ 的获取器。

statusChanged()

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

属性 statusᅟ 的通知信号。

stop()

停止当前播放。

static supportedMimeTypes()
Return type:

字符串列表

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

volume()
Return type:

浮点数

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

另请参阅

setVolume()

属性 volumeᅟ 的获取器。

volumeChanged()

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

属性 volumeᅟ 的通知信号。