MediaPlayer QML 类型
为场景添加媒体播放功能。 更多...
导入语句 | import QtMultimedia |
实例化 | QMediaPlayer |
属性
- activeAudioTrack : int
- activeSubtitleTrack : int
- activeVideoTrack : int
- audioOutput : AudioOutput
- audioTracks : list<mediaMetaData>
- autoPlay : bool
(自 6.7)
- bufferProgress : real
- duration : int
- error : 枚举
- errorString : string
- hasAudio : bool
- hasVideo : bool
- loops : int
- mediaStatus : 枚举
- metaData : mediaMetaData
- playbackRate : real
- playbackState : 枚举
- playing : bool
(自 6.5)
- position : int
- seekable : bool
- source : url
- subtitleTracks : list<mediaMetaData>
- videoOutput : VideoOutput
- videoTracks : list<mediaMetaData>
信号
- errorOccurred(error, errorString)
- playbackStateChanged()
- playingChanged()
方法
详细描述
Text { text: "Click Me!"; font.pointSize: 24; width: 150; height: 50; MediaPlayer { id: playMusic source: "music.wav" audioOutput: AudioOutput {} } MouseArea { anchors.fill: parent onPressed: { playMusic.play() } } }
您可以使用 MediaPlayer 与 MultiMedia::AudioOutput 一起播放音频内容,或者您可以使用它与 MultiMedia::VideoOutput 一起渲染视频。
Item { MediaPlayer { id: mediaplayer source: "groovy_video.mp4" audioOutput: AudioOutput {} videoOutput: videoOutput } VideoOutput { id: videoOutput anchors.fill: parent } MouseArea { anchors.fill: parent onPressed: mediaplayer.play(); } }
另请参阅 AudioOutput 和 VideoOutput。
属性文档
activeAudioTrack : int |
该属性存储当前活动音频轨道的轨道号。设置为 -1
以禁用音频轨道。
默认属性值为 0
:第一个音频轨道。
activeSubtitleTrack : int |
该属性存储当前活动字幕轨道的轨道号。设置为 -1
以禁用字幕轨道。
默认属性值为 -1
:没有活动字幕。
activeVideoTrack : int |
该属性存储当前活动视频音频轨道的轨道号。设置为 -1
以禁用视频轨道。
默认属性值为 0
:第一个视频轨道。
audioOutput : AudioOutput |
该属性存储目标音频输出。接受一个 AudioOutput 元素。
audioTracks : list<mediaMetaData> |
autoPlay : bool |
该属性控制是否在媒体加载完成后自动开始播放。默认为 false
。
此属性自 Qt 6.7 版本引入。
bufferProgress : real |
该属性存储当前数据缓冲区填充的量,从 0.0
(空)到 1.0
(满)。
只有在缓冲区完全填满后,才能开始或继续播放。当缓冲区填满时,MediaPlayer.Buffered
设置为 true。当缓冲进度在 0.0
和 1.0
之间时,MediaPlayer.Buffering
设置为 true。
小于 1.0
的值表示属性 MediaPlayer.StalledMedia
为 true。
另请参阅 mediaStatus。
duration : int |
该属性存储媒体的持续时间(毫秒)。
如果媒体没有固定持续时间(例如直播流),则此值为 0
。
error : enumeration |
该属性存储音频的错误状态。它可以是从以下之一。
值 | 描述 |
---|---|
NoError | 没有当前错误。 |
ResourceError | 由于分配资源问题,音频无法播放。 |
FormatError | 不支持音频格式。 |
NetworkError | 由于网络问题,音频无法播放。 |
AccessDeniedError | 由于权限不足,无法播放音频。 |
errorString : string |
该属性存储一个字符串,以更详细的方式描述当前错误状态。
hasAudio : bool |
该属性表示媒体是否包含音频。
hasVideo : bool |
该属性表示媒体是否包含视频。
loops : int |
决定媒体播放多少次后播放器停止。设置为MediaPlayer::Infinite可以无限循环当前媒体文件。
默认值是1
。将此属性设置为0
没有作用。
mediaStatus : 枚举 |
该属性表示媒体加载的状态。它可以是以下之一
属性值 | 描述 |
---|---|
没有设置媒体。 | 没有设置媒体。 |
正在加载媒体 | 媒体正在加载。 |
加载完成媒体 | 媒体已经加载。 |
缓冲媒体 | 媒体正在缓冲数据。 |
停滞媒体 | 在媒体缓冲数据时播放被中断。 |
已缓冲媒体 | 媒体已缓冲数据。 |
媒体结束 | 媒体播放完毕。 |
无效媒体 | 媒体无法播放。 |
metaData : mediaMetaData |
返回媒体播放器当前使用的媒体元数据。
元数据可以包含诸如视频标题或创建日期等信息。
注意: Windows实现只为位于本地文件系统上的媒体提供元数据。
playbackRate : real |
playbackState : 枚举 |
该属性表示媒体播放的状态。它可以是以下之一
属性值 | 描述 |
---|---|
播放状态 | 媒体目前正在播放。这表示与playing属性相同。 |
暂停状态 | 媒体播放已被暂停。 |
停止状态 | 媒体播放尚未开始。 |
playing : bool |
position : int |
该值是当前播放位置,自媒体开始计时(毫秒)。位置的变化将通过positionChanged()信号定期指示。
如果seekable属性为true,则可以将该属性设置为毫秒。
source : url |
该属性表示媒体的源URL。
Item { MediaPlayer { id: mediaplayer source: "file:///test.mp4" videoOutput: videoOutput audioOutput: AudioOutput { } } VideoOutput { id: videoOutput anchors.fill: parent } MouseArea { id: playArea anchors.fill: parent onPressed: mediaplayer.play(); } }
subtitleTracks : 列表<mediaMetaData> |
videoOutput : VideoOutput |
此属性包含目标视频输出。接受一个VideoOutput元素。
另请参阅 QMediaPlayer::setVideoOutput().
videoTracks : list<mediaMetaData> |
信号文档
errorOccurred(error, errorString) |
当发生error时,将发出此信号。参数errorString可能包含有关错误的更详细信息。
注意:对应的手动处理程序是onErrorOccurred
。
另请参阅 QMediaPlayer::Error。
playbackStateChanged() |
当playbackState属性被更改时,会发出此信号。
注意:对应的手动处理程序是onPlaybackStateChanged
。
playingChanged() |
当playing属性改变时,会发出此信号。
注意:对应的手动处理程序是onPlayingChanged
。
方法文档
pause() |
暂停媒体播放。
将playbackState属性设置为PlayingState,并将playing设置为false
。
play() |
开始或恢复媒体播放。
将playbackState属性设置为PlayingState,并将playing设置为true
。
stop() |
停止媒体播放。
将playbackState属性设置为PlayingState,并将playing设置为false
。
© 2024 Qt公司有限公司。本文档中的文档贡献归各自的拥有者所有。本手册的文档依据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。Qt及其相关标志是芬兰和全球其他地区的Qt公司商标。所有其他商标均为各自拥有者的财产。