- 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 –
QAudioDeviceparent –
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的通知信号。