- class QSoundEffect#
QSoundEffect
类提供了一种播放低延迟音效的方法。 更多...概要#
属性#
方法#
def
__init__()
def
audioDevice()
定义
isLoaded()
定义
isMuted()
定义
isPlaying()
定义
loopCount()
定义
setMuted()
定义
setSource()
定义
setVolume()
定义
source()
定义
status()
定义
volume()
槽函数#
信号#
静态函数#
注意
本文档可能包含了从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#
此属性指示声音效果是否正在播放。
- 访问函数
此属性包含要播放的声音的 URL。对于 SoundEffect 尝试加载源,URL 必须存在,并且应用程序必须具有指定目录的读权限。
- 访问函数
- 属性 status: QSoundEffect.Status#
此属性表示声效当前的
Status
枚举状态。- 访问函数
- 属性 volume: float#
此属性包含声效播放的音量,从 0.0 (静音)到 1.0 (全音量)。
- 访问函数
- __init__(audioDevice[, parent=None])#
- 参数:
audioDevice –
QAudioDevice
parent –
QObject
创建一个具有给定
audioDevice
和parent
的QSoundEffect
。- __init__([parent=None])
- 参数:
parent –
QObject
创建一个具有给定
parent
的QSoundEffect
。- audioDevice()#
- 返回类型:
另请参阅
属性
audioDevice
的获取器。- audioDeviceChanged()#
属性
audioDevice
的通知信号。- isLoaded()#
- 返回类型:
bool
返回声音效果是否完成了对
source()
的加载。- isMuted()#
- 返回类型:
bool
返回当前声音效果是否被静音
muted
属性的获取器。- isPlaying()#
- 返回类型:
bool
如果声音效果目前正在播放,则返回 true,否则返回 false
playing
属性的获取器。- loadedChanged()#
当加载状态改变时,会发出
loadedChanged
信号。- loopCount()#
- 返回类型:
int
返回声音效果在停止前将要播放的总次数。
请参见
loopsRemaining()
方法,以获得当前剩余的循环次数。另请参阅
loops
属性的获取器。- loopCountChanged()#
当初始循环次数改变时,会发出
loopCountChanged
信号。loops
属性的通知信号。- loopsRemaining()#
- 返回类型:
int
loopsRemaining
属性的获取器。- loopsRemainingChanged()#
当剩余循环次数改变时,会发出
loopsRemainingChanged
信号。loopsRemaining
属性的通知信号。- mutedChanged()#
当静音状态改变时,会发出
mutedChanged
信号。属性
muted
的通知信号。- play()#
启动声音效果播放,循环播放次数由 loops 属性指定。
- playingChanged()#
当 playing 属性发生变化时,将发出
playingChanged
信号。属性
playing
的通知信号。- setAudioDevice(device)#
- 参数:
device –
QAudioDevice
另请参阅
设置属性
audioDevice
的赋值器。- setLoopCount(loopCount)#
- 参数:
loopCount – int
将播放此声音效果的次数总数设置为
loopCount
。将循环次数设置为 0 或 1 意味着声音效果将只播放一次;传递
QSoundEffect::Infinite
以无限循环。在声音效果播放过程中可以更改循环次数,在这种情况下,它将更新剩余的循环到新的loopCount
。设置属性
loops
的赋值器。- setMuted(muted)#
- 参数:
muted – bool
设置是否静音此声音效果的播放。
如果
muted
为 true,播放将被静音(无声),否则播放将以指定的当前volume()
进行。另请参阅
设置属性
muted
的赋值器。将当前要播放的URL设置为
url
。另请参阅
属性
sourceᅟ
的设置器。- setVolume(volume)#
- 参数:
volume – float
将声音效果的音量设置为
volume
。音量在
0.0
(静音)到1.0
(全音量)之间线性缩放。超出此范围的值将被钳位。默认音量为
1.0
。UI音量控件通常应进行非线性缩放。例如,使用对数刻度将产生感知响度的线性变化,这是用户通常期望的音量控制方式。有关更多信息,请参阅
convertVolume()
。另请参阅
属性
volumeᅟ
的设置器。返回当前要播放的源URL
另请参阅
属性
sourceᅟ
的获取器。- sourceChanged()#
当源变更时发出
sourceChanged
信号。属性
sourceᅟ
的通知信号。返回当前声音效果的状态。
属性
statusᅟ
的获取器。- statusChanged()#
当状态属性变更时发出
statusChanged
信号。属性
statusᅟ
的通知信号。- stop()#
停止当前播放。
- static supportedMimeTypes()#
- 返回类型:
字符串列表
返回此平台支持的所有MIME类型列表。
- volume()#
- 返回类型:
浮点数
返回此音效的当前音量,范围从0.0(静音)到1.0(最大音量)。
另请参阅
属性
volume
的获取器。- volumeChanged()#
当音量发生变化时,会触发
volumeChanged
信号。属性
volume
的通知信号。