MediaPlayer QML Type
为场景添加媒体播放。更多
| Import Statement: | import QtMultimedia |
| In C++: | QMediaPlayer |
属性
- activeAudioTrack : int
- activeSubtitleTrack : int
- activeVideoTrack : int
- audioBufferOutput : QAudioBufferOutput
(since 6.8) - audioOutput : AudioOutput
- audioTracks : list<mediaMetaData>
- autoPlay : bool
(since 6.7) - bufferProgress : real
- duration : int
- error : enumeration
- errorString : string
- hasAudio : bool
- hasVideo : bool
- loops : int
- mediaStatus : enumeration
- metaData : mediaMetaData
- pitchCompensation : bool
(since 6.10) - pitchCompensationAvailability : enumeration
(since 6.10) - playbackOptions : playbackOptions
(since 6.10) - playbackRate : real
- playbackState : enumeration
- playing : bool
(since 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 :第一个视频音轨。
audioBufferOutput : QAudioBufferOutput [since 6.8]
该属性用于保存目标音频缓冲输出。
正常使用 QML 的MediaPlayer 时不需要使用此属性。
此属性在 Qt 6.8 中引入。
另请参阅 QMediaPlayer::audioBufferOutput().
audioOutput : AudioOutput
该属性包含目标音频输出。接受一个AudioOutput 元素。
另请参阅 QMediaPlayer::setAudioOutput().
audioTracks : list<mediaMetaData> [read-only]
该属性包含一个元数据列表。每个索引指向一个音轨。
元数据包含描述各个音轨的属性。对于音轨而言,Language 通常是最重要的属性。
另请参阅 mediaMetaData 。
autoPlay : bool [since 6.7]
此属性控制媒体加载后是否开始自动播放。默认值为false 。
此属性在 Qt 6.7 中引入。
bufferProgress : real [read-only]
该属性表示数据缓冲区当前被填满的程度,从0.0 (空)到1.0 (满)。
只有当缓冲区全部填满时,才能开始或继续播放。缓冲区已满时,MediaPlayer.Buffered 为 true。当缓冲区进度介于0.0 和1.0 之间时,MediaPlayer.Buffering 将被设置为true 。
值小于1.0 意味着属性MediaPlayer.StalledMedia 为true 。
另请参阅 mediaStatus 。
duration : int [read-only]
此属性表示媒体的持续时间,单位为毫秒。
如果媒体没有固定的持续时间(例如直播流),则该属性将设置为0 。
error : enumeration [read-only]
该属性用于保存音频的错误状态。它可以是以下其中之一。
| 常量 | 说明 |
|---|---|
MediaPlayer.NoError | 未发生错误。 |
MediaPlayer.ResourceError | 媒体资源无法解析。 |
MediaPlayer.FormatError | 媒体资源的格式不(完全)受支持。可能仍可播放,但没有音频或视频组件。 |
MediaPlayer.NetworkError | 出现网络错误。 |
MediaPlayer.AccessDeniedError | 没有播放媒体资源的适当权限。 |
errorString : string [read-only]
该属性包含一个字符串,详细描述了当前的错误状况。
hasAudio : bool [read-only]
此属性表示媒体是否包含音频。
hasVideo : bool [read-only]
此属性表示媒体是否包含视频。
loops : int
决定播放器停止播放媒体文件的频率。设置为 MediaPlayer::Infinite 时,将永远循环播放当前媒体文件。
默认值为1 。将此属性设置为0 没有任何作用。
mediaStatus : enumeration [read-only]
该属性显示媒体加载的状态。它可以是以下其中之一:
| 常量 | 说明 |
|---|---|
MediaPlayer.NoMedia | 当前没有媒体。播放器处于 StoppedState(停止状态)。 |
MediaPlayer.LoadingMedia | 正在加载当前媒体。播放器可能处于任何状态。 |
MediaPlayer.LoadedMedia | 当前媒体已加载。播放器处于 StoppedState(停止状态)。 |
MediaPlayer.StalledMedia | 由于缓冲不足或其他临时中断,当前媒体的播放已停止。播放器处于 PlayingState(播放状态)或 PausedState(暂停状态)。 |
MediaPlayer.BufferingMedia | 播放器正在缓冲数据,但缓冲的数据足以让播放在不久的将来继续进行。播放器处于播放状态(PlayingState)或暂停状态(PausedState)。 |
MediaPlayer.BufferedMedia | 播放器已完全缓冲当前媒体。播放器处于 PlayingState(播放状态)或 PausedState(暂停状态)。 |
MediaPlayer.EndOfMedia | 播放已到达当前媒体的末尾。播放器处于 StoppedState(停止状态)。 |
MediaPlayer.InvalidMedia | 当前媒体无法播放。播放器处于 StoppedState(停止状态)。 |
metaData : mediaMetaData [read-only]
返回媒体播放器使用的当前媒体的元数据。
元数据可包含视频标题或创建日期等信息。
注意: Windows 实现只为位于本地文件系统中的媒体提供元数据。
pitchCompensation : bool [since 6.10]
此属性表示是否启用了间距补偿。
此属性在 Qt 6.10 中引入。
pitchCompensationAvailability : enumeration [read-only, since 6.10]
表示当前后端MediaPlayer 的螺距补偿功能是否可用。枚举PitchCompensationAvailability 是有范围的。
| 常量 | 说明 |
|---|---|
MediaPlayer.AlwaysOn | 媒体播放器始终执行音高补偿。 |
MediaPlayer.Available | 媒体播放器可配置为使用音高补偿。如果当前平台可以使用音高补偿,则默认情况下会启用,但用户可以根据需要禁用。 |
MediaPlayer.Unavailable | 媒体播放器无法在当前平台上执行音高补偿。 |
此属性在 Qt 6.10 中引入。
playbackOptions : playbackOptions [since 6.10]
该属性公开了 playbackOptions API,可对媒体播放选项进行底层控制。虽然我们强烈建议使用MediaPlayer 的默认设置,但在默认选项不理想的特定使用情况下,可以使用此 API 来优化媒体播放。
播放选项在下一次更改MediaPlayer::source 时生效。
此属性在 Qt 6.10 中引入。
playbackRate : real
该属性表示媒体播放的速率是正常速率的倍数。
更多信息,请参阅QMediaPlayer::playbackRate 。
默认为1.0 。
playbackState : enumeration [read-only]
此属性表示媒体播放的状态。可以是以下内容之一:
| 属性值 | 描述 |
|---|---|
| 播放状态 | 媒体当前正在播放。其指示与playing 属性相同。 |
| 暂停状态 | 媒体播放已暂停。 |
| 停止状态 | 媒体播放尚未开始。 |
playing : bool [read-only, since 6.5]
表示媒体是否正在播放。
此属性在 Qt 6.5 中引入。
另请参阅 playbackState 。
position : int
该值是当前的播放位置,以媒体开始播放后的毫秒为单位。位置的周期性变化将通过 positionChanged() 信号显示。
如果seekable 属性为 true,则可将此属性设置为毫秒。
seekable : bool [read-only]
该属性表示是否可以更改媒体的position 。
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(); } }
另请参见 QMediaPlayer::setSource().
subtitleTracks : list<mediaMetaData> [read-only]
该属性包含一个元数据列表。每个索引指向一个字幕轨道。
元数据包含描述各个音轨的属性。对于字幕轨道,Language 通常是最重要的属性。
另请参阅 mediaMetaData 。
videoOutput : VideoOutput
该属性包含目标视频输出。接受一个VideoOutput 元素。
另请参阅 QMediaPlayer::setVideoOutput().
videoTracks : list<mediaMetaData> [read-only]
该属性包含一个元数据列表。每个索引指向一个视频轨。
元数据包含描述各轨道的属性。
另请参阅 mediaMetaData 。
信号文档
errorOccurred(error, errorString)
当error 发生错误时会发出该信号。errorString 参数可能包含更详细的错误信息。
注: 相应的处理程序是onErrorOccurred 。
另请参阅 QMediaPlayer::Error 。
playbackStateChanged()
当playbackState 属性被更改时会发出该信号。
注: 相应的处理程序是onPlaybackStateChanged 。
playingChanged()
playing 属性发生变化时发出该信号。
注: 相应的处理程序是onPlayingChanged 。
方法文档
void pause()
暂停媒体播放。
将playbackState 属性设置为 PausedState,并将playing 更改为false 。
void play()
开始或恢复媒体播放。
将playbackState 属性设置为 PlayingState,并将playing 更改为true 。
void stop()
停止媒体播放。
将playbackState 属性设置为 StoppedState,并将playing 更改为false 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.