QMediaPlayer
是 PyQt6 中用于音视频播放的类,提供了对多种媒体格式的支持,能够播放本地文件、流媒体、音频以及视频等。它是 QtMultimedia
模块的一部分,主要通过与 QMediaPlayer
结合使用的控件,如 QVideoWidget
来显示视频内容。
主要功能:
1. 加载和播放媒体:
setSource()
:设置要播放的媒体源,可以是本地文件、URL 或媒体流。play()
:开始播放音频或视频。pause()
:暂停播放。stop()
:停止播放。
2. 控制音量:
setVolume()
:设置音量(0到100之间)。
3. 控制播放进度:
setPosition()
:设置播放的当前位置(以毫秒为单位)。position()
:获取当前播放位置。
4. 获取媒体信息:
duration()
:获取媒体的总时长(以毫秒为单位)。media()
:获取当前播放的媒体内容。
5. 信号:
mediaStatusChanged
: 当媒体播放状态发生变化时发出信号。positionChanged
: 当播放进度改变时发出信号。durationChanged
: 当媒体的总时长发生变化时发出信号。error
: 当播放出错时触发。
6. 视频输出:
setVideoOutput()
: 设置一个视频控件(如QVideoWidget
)来显示播放的视频内容。
示例代码:
from PyQt6.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget
from PyQt6.QtMultimedia import QMediaPlayer, QAudioOutput
from PyQt6.QtCore import QUrlapp = QApplication([])# 界面
window = QWidget()
layout = QVBoxLayout()# 播放器
# 播放器
player = QMediaPlayer()
audio_output = QAudioOutput()
player.setAudioOutput(audio_output)
player.setSource(QUrl.fromLocalFile("./res/music/提示音1.mp3")) # 指定本地音频文件
player.play()
player.setLoops(5) # 循环播放# 播放按钮
button = QPushButton("停止")
button.clicked.connect(player.stop)layout.addWidget(button)
window.setLayout(layout)
window.show()
app.exec()
关键方法总结:
setSource()
: 设置媒体源。play()
,pause()
,stop()
: 控制播放。setVolume()
: 调整音量。setPosition()
: 设置播放进度。setVideoOutput()
: 设置视频输出窗口。