- 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()
将从开头重新开始解码。