class QAudioDecoder#

QAudioDecoder实现了音频解码。更多

Inheritance diagram of PySide6.QtMultimedia.QAudioDecoder

概述#

属性#

  • bufferAvailable - 是否有可用的解码音频缓冲区

  • error

  • isDecoding - 如果解码器当前正在运行并解码音频数据,则为 True

  • sourceᅟ - 被解码器对象解码的活动文件名

方法#

槽函数#

信号#

注意

此文档可能包含从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#

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

访问函数
property errorᅟ: str#

返回对当前错误的清晰描述,如果没有错误,则为空字符串。

访问函数
属性 isDecoding: 布尔值#

此属性持有关闭,如果解码器正在运行并解码音频数据。

访问函数
属性 source: QUrl#

此属性包含正在由解码器对象解码的活动的文件名。

访问函数
__init__([parent=None])#
参数:

parentQObject

使用 parent 构建一个 QAudioDecoder 实例。

audioFormat()#
返回类型:

QAudioFormat

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

注意

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

bufferAvailable()#
返回类型:

true

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

属性 bufferAvailable 的获取器。

bufferAvailableChanged(arg__1)#
参数:

arg__1 – 布尔值

available 为 true 时,通知新缓冲区的可用性。

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

属性bufferAvailableᅟ的通知信号。

bufferReady()#

新解码的音频缓冲区可供读取的信号。

另请参阅

read() bufferAvailable()

duration()#
返回类型:

int

返回音频流的总体时长(以毫秒为单位),或者当不可用时的-1。

durationChanged(duration)#
参数:

duration – int

解码数据的估计时duration有变化时的信号。

另请参阅

positionChanged()

error()#
返回类型:

Error

返回QAudioDecoder当前的错误状态。

error(error)
参数:

errorError

出现错误条件时的信号。

另请参阅

errorString()

errorString()#
返回类型:

str

属性errorᅟ的获取器。

finished()#

解码成功完成时的信号。如果解码失败,将发出错误信号。

另请参阅

start() stop() error()

formatChanged(format)#
参数:

格式QAudioFormat

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

isDecoding()#
返回类型:

true

属性 isDecodingᅟ 的获取器。

isDecodingChanged(arg__1)#
参数:

arg__1 – 布尔值

属性 isDecodingᅟ 的通知信号。

isSupported()#
返回类型:

true

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

position()#
返回类型:

int

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

positionChanged(position)#
参数:

position – int

指示解码器的当前 position 已更改。

另请参阅

durationChanged()

read()#
返回类型:

QAudioBuffer

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

您应该响应 bufferReady() 信号或检查 bufferAvailable() 函数,然后再调用 read() 以确保您获得有用的数据。

setAudioFormat(format)#
参数:

格式QAudioFormat

将解码样本期望的音频格式设置为 format

此属性只能在解码器停止时设置。其他时间设置此属性将无效。

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

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

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

警告

由于安卓后端尚未支持设置所需音频格式。它与默认的FFMPEG后端兼容。

另请参阅

audioFormat()

setSource(fileName)
参数:

fileNameQUrl

设置当前音频文件名为 fileName

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

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

另请参阅

source()

属性 source 的设置器。

setSourceDevice(device)
参数:

deviceQIODevice

设置当前音频 QIODevice 为 device

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

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

另请参阅

sourceDevice()

source()
返回类型:

QUrl

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

另请参阅

setSource()

属性 source 的获取器。

sourceChanged()

通知解码器当前源已更改。

另请参阅

source() sourceDevice()

属性 source 的通知信号。

sourceDevice()
返回类型:

QIODevice

返回当前源 QIODevice,如果已设置。如果调用 setSource(),则此为 nullptr。

另请参阅

setSourceDevice()

start()

开始解码音频资源。

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

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

另请参阅

read()

stop()

停止音频解码。再次调用start()将从开头重新开始解码。