PySide6.QtMultimedia.QAudioDecoder

class QAudioDecoder

QAudioDecoder 类实现了音频解码。更多

PySide6.QtMultimedia.QAudioDecoder 的继承图

概要

属性

方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QAudioDecoder 类是一个用于解码音频媒体文件的高级类。它与 QMediaPlayer 类类似,不同之处在于音频是通过此 API 提供的,而不是直接路由到音频硬件。

另请参阅

QAudioBuffer

class Error

定义媒体播放器错误条件。

常量

描述

QAudioDecoder.NoError

没有发生错误。

QAudioDecoder.ResourceError

无法解析媒体资源。

QAudioDecoder.FormatError

媒体资源的格式不受支持。

QAudioDecoder.AccessDeniedError

没有适当的权限来播放媒体资源。

QAudioDecoder.NotSupportedError

QAudioDecoder 在此平台上不受支持

注意

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

property bufferAvailableᅟ: bool

此属性表示是否有可用的解码音频缓冲区。

Access functions:
property errorᅟ: str

返回当前错误的人类可读描述,如果没有错误则返回空字符串。

Access functions:
property isDecodingᅟ: bool

如果解码器当前正在运行并解码音频数据,则此属性保持 true

Access functions:
property sourceᅟ: QUrl

此属性保存解码器对象正在解码的活动文件名。

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

父对象QObject

使用parent构建一个QAudioDecoder实例。

audioFormat()
Return type:

QAudioFormat

返回解码器设置的音频格式。

注意

如果音频格式设置为无效格式,这可能与解码样本的格式不同。

bufferAvailable()
Return type:

布尔

如果缓冲区可供读取,则返回true,否则返回false。如果没有可用的缓冲区,调用read()函数将返回一个无效的缓冲区。

属性 bufferAvailableᅟ 的获取器。

bufferAvailableChanged(available)
Parameters:

可用 – bool

表示新缓冲区的可用性(如果 available 为 true)。

如果 available 为 false,则表示没有可用的缓冲区。

属性 bufferAvailableᅟ 的通知信号。

bufferReady()

表示有新的解码音频缓冲区可供读取。

另请参阅

read() bufferAvailable()

duration()
Return type:

整数

返回音频流的总时长(以毫秒为单位),如果不可用则返回-1。

durationChanged(duration)
Parameters:

duration – int

表示解码数据的估计duration已更改。

另请参阅

positionChanged()

error()
Return type:

错误

返回QAudioDecoder的当前错误状态。

error(error)
Parameters:

错误Error

表示发生了error条件。

另请参阅

errorString()

errorString()
Return type:

字符串

属性 errorᅟ 的获取器。

finished()

表示解码已成功完成。如果解码失败,则会发出错误信号。

另请参阅

start() stop() error()

formatChanged(format)
Parameters:

格式QAudioFormat

表示解码器的当前音频格式已更改为 format

isDecoding()
Return type:

布尔

属性 isDecodingᅟ 的获取器。

isDecodingChanged(arg__1)
Parameters:

arg__1 – 布尔值

属性 isDecodingᅟ 的通知信号。

isSupported()
Return type:

布尔

如果此平台支持音频解码,则返回true。

position()
Return type:

整数

返回从解码器读取的最后一个缓冲区的位置(以毫秒为单位),如果尚未读取任何缓冲区,则返回-1。

positionChanged(position)
Parameters:

position – int

表示解码器的当前position已发生变化。

另请参阅

durationChanged()

read()
Return type:

QAudioBuffer

从解码器读取一个缓冲区(如果有的话)。如果当前没有可用的解码缓冲区或失败,则返回一个无效的缓冲区。在这两种情况下,此函数不会阻塞。

你应该响应bufferReady()信号或在调用read()之前检查bufferAvailable()函数,以确保获取有用的数据。

setAudioFormat(format)
Parameters:

格式QAudioFormat

设置解码样本所需的音频格式为format

此属性只能在解码器停止时设置。在其他时间设置此属性将被忽略。

如果解码器不支持此格式,error() 将被设置为 FormatError

如果不指定格式,将使用解码音频本身的格式。否则,将应用一些格式转换。

如果您希望将解码格式重置为原始音频文件的格式,您可以指定一个无效的format

警告

在Android后端上尚不支持设置所需的音频格式。它确实适用于默认的FFMPEG后端。

另请参阅

audioFormat()

setSource(fileName)
Parameters:

fileNameQUrl

将当前音频文件名设置为 fileName

当设置此属性时,任何当前的解码将停止,并且任何音频缓冲区将被丢弃。

您只能指定源文件名或源QIODevice。设置其中一个将取消设置另一个。

另请参阅

source()

属性 sourceᅟ 的设置器。

setSourceDevice(device)
Parameters:

设备QIODevice

将当前的音频QIODevice设置为device

当设置此属性时,任何当前的解码将停止,并且任何音频缓冲区将被丢弃。

您只能指定源文件名或源QIODevice。设置其中一个将取消设置另一个。

另请参阅

sourceDevice()

source()
Return type:

QUrl

返回当前要解码的文件名。如果调用了setSourceDevice,这将为空。

另请参阅

setSource()

属性 sourceᅟ 的获取器。

sourceChanged()

表示解码器的当前源已更改。

另请参阅

source() sourceDevice()

属性 sourceᅟ 的通知信号。

sourceDevice()
Return type:

QIODevice

返回当前源QIODevice,如果已设置。如果调用了setSource(),这将是一个nullptr。

另请参阅

setSourceDevice()

start()

开始解码音频资源。

当数据被解码时,bufferReady()信号将在解码到足够数据时发出。调用read()将返回一个音频缓冲区而不会阻塞。

如果你在缓冲区准备好之前调用read(),将会返回一个无效的缓冲区,同样不会阻塞。

另请参阅

read()

stop()

停止解码音频。再次调用 start() 将从开始处恢复解码。