Pyqt6 中 QMediaPlayer 音视频播放
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 QUrl
app = 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(): 设置视频输出窗口。
