- class QAudioDecoder#
类
QAudioDecoder实现了音频解码。更多…概述#
属性#
bufferAvailable- 是否有可用的解码音频缓冲区isDecoding- 如果解码器当前正在运行并解码音频数据,则为 Truesourceᅟ- 被解码器对象解码的活动文件名
方法#
def
__init__()def
audioFormat()def
duration()def
error()def
errorString()def
isDecoding()def
isSupported()def
position()def
read()def
setAudioFormat()def
setSource()def
source()def
sourceDevice()
槽函数#
信号#
def
bufferReady()def
error()def
finished()
注意
此文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单的方式告诉我们
详细描述#
QAudioDecoder类是一个用于解码音频媒体文件的高级类。它与QMediaPlayer类类似,除了音频是通过此API而不是直接发送给音频硬件外。另请参阅
- class Error#
定义媒体播放器错误条件。
常量
描述
QAudioDecoder.NoError
未发生错误。
QAudioDecoder.ResourceError
无法解析媒体资源。
QAudioDecoder.FormatError
不支持媒体资源的格式。
QAudioDecoder.AccessDeniedError
没有播放媒体资源的适当权限。
QAudioDecoder.NotSupportedError
QAudioDecoder不支持此平台
注意
可以在使用
from __feature__ import true_property时直接使用属性,否则通过访问函数使用。- property bufferAvailableᅟ: bool#
此属性表示是否可用的解码音频缓冲区。
- property errorᅟ: str#
返回对当前错误的清晰描述,如果没有错误,则为空字符串。
- 访问函数
- 属性 isDecoding: 布尔值#
此属性持有关闭,如果解码器正在运行并解码音频数据。
- 访问函数
此属性包含正在由解码器对象解码的活动的文件名。
- 访问函数
使用
parent构建一个QAudioDecoder实例。- audioFormat()#
- 返回类型:
返回解码器设置到的音频格式。
- bufferAvailable()#
- 返回类型:
true
如果有一个可读的缓冲区,则返回 true,否则返回 false。如果没有可用的缓冲区,调用
read函数将返回一个无效的缓冲区。属性
bufferAvailable的获取器。- bufferAvailableChanged(arg__1)#
- 参数:
arg__1 – 布尔值
当
available为 true 时,通知新缓冲区的可用性。如果
available为 false,则没有缓冲区可用。属性
bufferAvailableᅟ的通知信号。- bufferReady()#
新解码的音频缓冲区可供读取的信号。
另请参阅
- duration()#
- 返回类型:
int
返回音频流的总体时长(以毫秒为单位),或者当不可用时的-1。
- durationChanged(duration)#
- 参数:
duration – int
解码数据的估计时
duration有变化时的信号。另请参阅
返回
QAudioDecoder当前的错误状态。- error(error)
- 参数:
error –
Error
出现错误条件时的信号。
另请参阅
- errorString()#
- 返回类型:
str
属性
errorᅟ的获取器。- finished()#
解码成功完成时的信号。如果解码失败,将发出错误信号。
- formatChanged(format)#
- 参数:
格式 –
QAudioFormat
指示解码器的当前音频格式已更改为
format。- isDecoding()#
- 返回类型:
true
属性
isDecodingᅟ的获取器。- isDecodingChanged(arg__1)#
- 参数:
arg__1 – 布尔值
属性
isDecodingᅟ的通知信号。- isSupported()#
- 返回类型:
true
如果该平台支持音频解码,则返回 true。
- position()#
- 返回类型:
int
返回从解码器最后一次读取的缓冲区的位置(以毫秒为单位),如果没有读取任何缓冲区,则返回 -1。
- positionChanged(position)#
- 参数:
position – int
指示解码器的当前
position已更改。另请参阅
- read()#
- 返回类型:
从解码器中读取缓冲区,如果可用。如果当前没有解码的缓冲区或失败,则返回无效的缓冲区。在这两种情况下,此函数都不会阻塞。
您应该响应
bufferReady()信号或检查bufferAvailable()函数,然后再调用 read() 以确保您获得有用的数据。- setAudioFormat(format)#
- 参数:
格式 –
QAudioFormat
将解码样本期望的音频格式设置为
format。此属性只能在解码器停止时设置。其他时间设置此属性将无效。
如果解码器不支持此格式,则
error()将设置为FormatError。如果您未指定格式,则将使用解码音频本身的格式。否则,将应用某些格式转换。
如果您想将解码格式重置为原始音频文件的格式,您可以指定一个无效的
format。- setSource(fileName)
- 参数:
fileName –
QUrl
设置当前音频文件名为
fileName。当设置此属性时,任何当前的解码都将停止,并且丢弃任何音频缓冲区。
您只能指定源文件名或源 QIODevice。设置一个将取消设置另一个。
另请参阅
属性
source的设置器。- setSourceDevice(device)
- 参数:
device –
QIODevice
设置当前音频 QIODevice 为
device。当设置此属性时,任何当前的解码都将停止,并且丢弃任何音频缓冲区。
您只能指定源文件名或源 QIODevice。设置一个将取消设置另一个。
另请参阅
- source()
- 返回类型:
返回要解码的当前文件名。如果调用了
setSourceDevice,则此为空。另请参阅
属性
source的获取器。- sourceChanged()
通知解码器当前源已更改。
另请参阅
属性
source的通知信号。- sourceDevice()
- 返回类型:
返回当前源 QIODevice,如果已设置。如果调用
setSource(),则此为 nullptr。另请参阅
- start()
开始解码音频资源。
随着数据的解码,当解码足够多的数据时,会发出
bufferReady()信号。此时调用read()将返回一个音频缓冲区而不会阻塞。如果在缓冲区准备好之前调用
read(),将会返回一个无效的缓冲区,同样不会阻塞。另请参阅
- stop()
停止音频解码。再次调用
start()将从开头重新开始解码。