class QMediaPlayer#

QMediaPlayer 类允许播放媒体文件。 更多...

Inheritance diagram of PySide6.QtMultimedia.QMediaPlayer

摘要#

属性#

方法#

槽函数#

信号#

注解

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

详细描述#

警告

本节包含自动从 C++ 转换为 Python 的代码片段,可能包含错误。

QMediaPlayer 类是一个高级媒体播放类。它可以用来播放音频和视频媒体文件。要播放的内容由 QUrl 对象指定。

player = QMediaPlayer()
audioOutput = QAudioOutput()
player.setAudioOutput(audioOutput)
player.positionChanged.connect(self.positionChanged)
player.setSource(QUrl.fromLocalFile("/Users/me/Music/coolsong.mp3"))
audioOutput.setVolume(50)
player.play()

QVideoWidget 可以与 QMediaPlayer 一起使用,用于视频渲染。

另请参阅

QVideoWidget

class PlaybackState#

定义了媒体播放器的当前状态。

常量

描述

QMediaPlayer.StoppedState

媒体播放器未播放内容,播放将从当前标题开始。

QMediaPlayer.PlayingState

媒体播放器正在播放内容。这等同于代码 playing 属性的含义。

QMediaPlayer.PausedState

媒体播放器已暂停播放,播放将从暂停的位置恢复播放当前标题。

新版本 6.1 中加入。

MediaStatus<#

定义媒体播放器当前媒体的状态。

常量

描述

QMediaPlayer.NoMedia

当前没有媒体。播放器处于 StoppedState 状态。

QMediaPlayer.LoadingMedia

当前媒体正在加载。播放器可能处于任何状态。

QMediaPlayer.LoadedMedia

当前媒体已加载。播放器处于 StoppedState 状态。

QMediaPlayer.StalledMedia

由于缓存不足或其他临时中断,当前媒体播放已停滞。播放器处于 PlayingStatePausedState 状态。

QMediaPlayer.BufferingMedia

播放器正在缓冲数据,但已缓存足够的数据以供在不久的将来继续播放。播放器处于 PlayingStatePausedState 状态。

QMediaPlayer.BufferedMedia

播放器已完全缓冲当前媒体。播放器处于 PlayingStatePausedState 状态。

QMediaPlayer.EndOfMedia

播放已到达当前媒体的末尾。播放器处于 StoppedState 状态。

QMediaPlayer.InvalidMedia

当前媒体无法播放。播放器处于 StoppedState 状态。

Error<#

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

常量

描述

QMediaPlayer.NoError

没有发生错误。

QMediaPlayer.ResourceError

无法解析媒体资源。

QMediaPlayer.FormatError

媒体资源的格式不受(完全)支持。播放可能仍然可能,但没有音频或视频组件。

QMediaPlayer.NetworkError

发生网络错误。

QMediaPlayer.AccessDeniedError

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

class Loops#

(继承自 enum.IntEnum) 该属性的一些预定义常量。

常量

描述

QMediaPlayer.Infinite

无限循环。

QMediaPlayer.Once

播放媒体一次(默认)。

新功能 6.2.3。

注解

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

property activeAudioTrackᅟ: int#

此属性持返回当前激活的音频轨道。

默认情况下,将选择第一个可用的音频轨道。

index 设置为 -1 以禁用所有音频轨道。

访问函数
property activeSubtitleTrackᅟ: int#

此属性持返回当前激活的字幕轨道。

index 设置为 -1 以禁用字幕。

默认情况下,字幕是禁用的。

访问函数
property activeVideoTrackᅟ: int#

此属性持返回当前激活的视频轨道。

默认情况下,将选择第一个可用的音频轨道。

index 设置为 -1 以禁用所有视频轨道。

访问函数
property audioOutputᅟ: QAudioOutput#

此属性持由媒体播放器使用的音频输出设备。

播放媒体时使用的当前音频输出。设置新的音频输出将替换当前正在使用的输出。

将此属性设置为零指针(nullptr)将禁用任何音频输出。

访问函数
property audioTracksᅟ: list of QMediaMetaData#

列出媒体内部的可用的音频轨道集合。

返回的 QMediaMetaData 描述了各个轨道的属性。

不同的音频轨道可以例如包含不同语言的音频。

访问函数
属性 bufferProgress: float#

此属性存储在播放或恢复开始之前填充临时缓冲区的百分比,从 0(空)到 1(满)。

当播放器对象正在缓冲时,此属性存储已填充的临时缓冲区百分比。缓冲区必须达到100%的填充才能开始或恢复播放,在此之后 mediaStatus() 将返回 BufferedMediaBufferingMedia . 如果值低于 100mediaStatus() 将返回 StalledMedia .

另请参阅

mediaStatus()

访问函数
属性 duration: int#

此属性存储当前媒体的时长。

该值表示当前媒体的总体播放时间(以毫秒为单位)。该值可能在 QMediaPlayer 对象的生命周期内发生变化,并且可能在初始播放开始时不可用。连接到 durationChanged() 信号以接收状态通知。

访问函数
属性 error: QMediaPlayer.Error#

此属性存储描述最后错误条件的字符串。

另请参阅

error()

访问函数
属性 errorString: str#

此属性包含一个描述当前错误状态的内联字符串的详细信息。

访问函数
属性 hasAudio: bool#

此属性表示媒体是否包含音频。

访问函数
属性 hasVideo: bool#

此属性表示媒体是否包含视频。

访问函数
属性 loops: int#

确定在播放器停止之前媒体播放多少次。将此设置为Infinite将无限循环当前媒体文件。

默认值是1。将此属性设置为0没有效果。

访问函数
属性 mediaStatus: QMediaPlayer.MediaStatus#

此属性表示当前媒体流的状况。

流状态描述了当前流播放的进度。

默认此属性为NoMedia

访问函数
属性 metaData: QMediaMetaData#

获取媒体播放器当前使用的媒体元数据。

元数据可以包含视频标题或创建日期等信息。

注解

Windows实现仅对位于本地文件系统上的媒体提供元数据。

访问函数
属性 playbackRate: float#

该属性保存当前媒体的播放速率。

此值是应用于媒体标准播放速率的乘数。默认值为1.0,表示媒体以标准速度播放。大于1.0的值会增加播放速度,而介于0.0和1.0之间的值则会降低播放速度。不支持负播放速率。

并非所有的播放服务都支持更改播放速率。快进或快退时音频和视频的状态和质量由框架定义。

访问函数
属性 playbackState: QMediaPlayer.PlaybackState#

返回播放状态 PlaybackState .

另请参阅

playing

访问函数
属性 playing: bool#

该属性表示媒体是否正在播放。

访问函数
属性 position: int#

该属性保存当前媒体的播放位置。

该值为当前播放位置,以自媒体开始以来的毫秒表示。位置的变化将使用 positionChanged() 信号进行指示。

如果 seekerPlay 属性为真,则可以将此属性设置为毫秒。

访问函数
属性 seekerPlay bool#

此属性持有当前媒体的 seekable 状态。

如果支持搜索,则此属性将为 true;否则为 false。此属性的状态可能在 QMediaPlayer 对象的生命周期内更改,可以使用 seekableChanged 信号来监视更改。

访问函数
属性 source QUrl#

此属性持有玩家对象当前使用的有效媒体源。

玩家对象将使用 QUrl 来选择要播放的内容。

默认情况下,此属性具有空 QUrl。

将此属性设置为空 QUrl 将导致玩家丢弃与当前媒体源相关的一切信息,并停止与该媒体相关的所有 I/O 操作。

另请参阅

QUrl

访问函数
属性 subtitleTracks QMediaMetaData 的列表#

列出媒体中可用的字幕轨道集。

返回的 QMediaMetaData 描述了各个轨道的属性。

访问函数
属性 videoOutput QObject#

此属性持有媒体播放器要使用的视频输出。

媒体播放器只能附加一个视频输出,因此设置此属性将替换以前连接的视频输出。

将此属性设置为 nullptr 将禁用视频输出。

访问函数
属性 videoTracks: QMediaMetaData 列表 "#"

列出多媒体中的可用视频轨道集。

返回的 QMediaMetaData 描述了各个轨道的属性。

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

parentQObject

构造一个作为 parent 子对象的 QMediaPlayer 实例。

activeAudioTrack() #"
返回类型:

int

另请参阅

setActiveAudioTrack()

获取属性 activeAudioTrack 的值。

activeSubtitleTrack() #"
返回类型:

int

获取属性 activeSubtitleTrack 的值。

activeTracksChanged() #"

属性 activeAudioTrack 的通知信号。

activeVideoTrack() #"
返回类型:

int

另请参阅

setActiveVideoTrack()

获取属性 activeVideoTrack 的值。

audioOutput() #"
返回类型:

QAudioOutput

另请参阅

setAudioOutput()

获取属性 audioOutput 的值。

audioOutputChanged() #"

属性 audioOutput 的通知信号。

audioTracks() #"
返回类型:

. QMediaMetaData 列表

属性audioTracks的获取器。

bufferProgress()#
返回类型:

float

当数据正在缓冲时,返回0到1之间的数字。

0表示没有可用的缓冲数据,在此情况下通常播放停滞。一旦缓冲达到1,即缓冲了足够的数据能够恢复播放,播放将继续。

对于本地文件,bufferProgress()始终返回1。

属性bufferProgress 的获取器。

bufferProgressChanged(progress)#
参数:

progress – float

通知本地缓冲 filled 为0到1之间的数字。

属性 bufferProgress 的通知信号。

bufferedTimeRange()#
返回类型:

QMediaTimeRange

返回描述当前可缓冲数据的 QMediaTimeRange 对象。

从远程流媒体源流式传输媒体时,媒体文件的不同的部分可以在本地可用。返回的 QMediaTimeRange 对象描述了已缓冲并可供立即播放的时间范围。

另请参阅

QMediaTimeRange

duration()#
返回类型:

int

返回当前媒体的时长(毫秒)。

如果没有有效的媒体文件或流,返回0。对于实时流,由于有更多数据变得可用,通常在播放期间时长会变化。

属性 duration 的获取器。

durationChanged(duration)#
参数:

duration – int

通知内容时长已变为duration,以毫秒为单位表示。

属性 duration 的通知信号。

error()#
返回类型:

错误状态

返回当前的错误状态。

属性 error 的获取器。

errorChanged()#

属性 error 的通知信号。

errorOccurred(error, errorString)#
参数:
  • error错误

  • errorString – str

发出信号表示发生了错误条件,其中 errorString 包含错误描述。

另请参阅

errorString()

errorString()#
返回类型:

str

属性 errorString 的获取器。

hasAudio()#
返回类型:

bool

属性 hasAudio 的获取器。

hasAudioChanged(available)#
参数:

available – bool

发出信号表示音频内容的可用性已更改为 available

hasAudio 属性的通知信号。

hasVideo()#
返回类型:

bool

属性 hasVideo 的获取器。

hasVideoChanged(videoAvailable)#
参数:

videoAvailable – bool

发出信号表示视觉内容的可用性已更改为 videoAvailable

hasVideo 属性的通知信号。

isAvailable()#
返回类型:

bool

如果此平台支持媒体播放器,则返回 true。

isPlaying()#
返回类型:

bool

属性 playing 的获取器。

isSeekable()#
返回类型:

bool

如果媒体可寻址,则返回 true。大多数基于文件的媒体文件都是可寻址的,但实时流通常不是。

另请参阅

位置

属性 seekable 的获取器。

loops()#
返回类型:

int

另请参阅

setLoops()

属性 loops 的获取器。

loopsChanged()#

属性 loops 的通知信号。

mediaStatus()#
返回类型:

MediaStatus

属性 mediaStatus 的获取器。

mediaStatusChanged(status)#
参数:

statusMediaStatus

当前媒体状态的改变信号。

另请参阅

mediaStatus()

属性 mediaStatus 的通知信号。

metaData()#
返回类型:

QMediaMetaData

属性 metaData 的获取器。

metaDataChanged()#

属性 metaData 的通知信号。

pause()#

暂停当前播放源。

另请参阅

play() stop()

play()#

开始或继续播放当前播放源。

另请参阅

pause() stop()

playbackRate()#
返回类型:

float

返回当前的播放速率。

另请参阅

setPlaybackRate()

属性 playbackRate 的获取器。

playbackRateChanged(rate)#
参数:

rate – float

信号已发出,指示 playbackRate 已更改为 rate

playbackRate 属性的属性通知信号。

playbackState()#
返回类型:

PlaybackState

playbackState 的获取器。

playbackStateChanged(newState)#
参数:

newStatePlaybackState

playbackState 属性的属性通知信号。

playingChanged(playing)#
参数:

playing – bool

playing 属性的通知信号。

position()#
返回类型:

int

返回正在播放的媒体中的当前位置(以毫秒为单位)。

如果没有有效的媒体文件或流,返回0。对于实时流,由于有更多数据变得可用,通常在播放期间时长会变化。

另请参阅

setPosition()

position 属性的获取器。

positionChanged(position)#
参数:

position – int

已发出信号,指示内容的位置已更改为 position,以毫秒为单位表达。

position 属性的属性通知信号。

seekableChanged(seekable)#
参数:

seekable – bool

指示玩家对象的 seekable 状态已更改。

seekable 属性的属性通知信号。

setActiveAudioTrack(index)#
参数:

index – int

另请参阅

activeAudioTrack()

属性activeAudioTrackᅟ的设置器。

setActiveSubtitleTrack(index)#
参数:

index – int

另请参阅

activeSubtitleTrack()

属性activeSubtitleTrackᅟ的设置器。

setActiveVideoTrack(index)#
参数:

index – int

另请参阅

activeVideoTrack()

属性activeVideoTrackᅟ的设置器。

setAudioOutput(output)#
参数:

outputQAudioOutput

另请参阅

audioOutput()

属性audioOutputᅟ的设置器。

setLoops(loops)#
参数:

loops – int

另请参阅

loops()

属性loopsᅟ的设置器。

setPlaybackRate(rate)#
参数:

rate – float

另请参阅

playbackRate()

属性playbackRateᅟ的设置器。

setPosition(position)#
参数:

position – int

另请参阅

position()

属性positionᅟ的设置器。

setSource(source)#
参数:

sourceQUrl

设置了当前的source

将媒体设置为null QUrl将会导致播放器丢弃与当前媒体源相关的所有信息,并停止所有与该媒体相关的I/O操作。

注解

这个函数在记录指定的媒体源后立即返回。它不会等待媒体加载完成,也不会检查错误。请监听mediaStatusChanged()error()信号,以获取通知,当媒体加载以及加载期间出错时。

另请参阅

source()

属性source的设置器。

setSourceDevice(device[, sourceUrl=QUrl()])#
参数:

设置当前源device

媒体数据将从device读取。可以提供sourceUrl以解决关于媒体的额外信息,如MIME类型等。device必须可打开且可读。

对于macOS,device也应该支持随机访问。

注解

此函数在记录指定的媒体源后立即返回。它不会等待媒体加载完成,也不会检查错误。请监听mediaStatusChanged()error()信号,以获取通知,当媒体加载,如果在加载期间出现错误。

另请参阅

sourceDevice()

setVideoOutput(arg__1)#
参数:

arg__1QObject

另请参阅

videoOutput()

属性videoOutput的设置器。

setVideoSink(sink)#
参数:

sinkQVideoSink

sink设置为QVideoSink实例以检索视频数据。

另请参阅

videoSink()

()#
返回类型:

QUrl

另请参阅

setSource()

属性 source 的获取器。

sourceChanged(media)#
参数:

mediaQUrl

当媒体源被更改为 media 时发出信号。

属性 source 的通知信号。

sourceDevice()#
返回类型:

QIODevice

返回媒体数据的流源。

当通过 setSource() 传递流时才有效。

stop()#

停止播放,并将播放位置重置为开始。

另请参阅

play() pause()

subtitleTracks()#
返回类型:

. QMediaMetaData 列表

属性 subtitleTracks 的获取器。

tracksChanged()#

属性 audioTracks 的通知信号。

videoOutput()#
返回类型:

QObject

另请参阅

setVideoOutput()

属性 videoOutput 的获取器。

videoOutputChanged()#

属性 videoOutput 的通知信号。

videoSink()#
返回类型:

QVideoSink

返回 QVideoSink 实例。

另请参阅

setVideoSink()

videoTracks()#
返回类型:

. QMediaMetaData 列表

属性 videoTracks 的获取器。