pyqt播放视频
时间: 2023-07-01 12:18:03 浏览: 139
PyQt5+OpenCV播放本地视频GUI窗口 mp4等格式
5星 · 资源好评率100%
在PyQt中,可以使用QMediaPlayer和QVideoWidget类来实现视频播放功能。QMediaPlayer类是一个多媒体播放器,可以播放各种类型的音频和视频文件,而QVideoWidget类是一个显示视频的控件。下面是一个简单的例子,演示了如何使用QMediaPlayer和QVideoWidget类播放视频:
```python
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QHBoxLayout, QWidget, QPushButton, QLabel, QVideoWidget
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Video Player Example")
self.setGeometry(100, 100, 800, 600)
# 创建一个播放器和一个视频控件,并将它们添加到布局中
self.player = QMediaPlayer(self)
self.video = QVideoWidget(self)
layout = QHBoxLayout()
layout.addWidget(self.video)
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
# 创建一个标签和一个按钮,并将它们添加到布局中
self.label = QLabel("No Video Selected", self)
layout.addWidget(self.label)
self.button = QPushButton("Open Video", self)
layout.addWidget(self.button)
self.button.clicked.connect(self.openVideo)
def openVideo(self):
# 打开一个文件对话框,选择视频文件
filename, _ = QFileDialog.getOpenFileName(self, "Open Video", ".", "Video Files (*.mp4 *.avi)")
if filename:
# 如果用户选择了一个视频文件,则播放视频
self.player.setMedia(QMediaContent(QUrl.fromLocalFile(filename)))
self.player.setVideoOutput(self.video)
self.player.play()
self.label.setText("Playing " + filename)
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在上面的代码中,我们首先创建了一个播放器和一个视频控件,并将它们添加到布局中。然后创建了一个标签和一个按钮,将它们也添加到布局中。当用户点击按钮时,会打开一个文件对话框,选择视频文件后,播放器会播放选中的视频,并将视频显示在视频控件中。同时,标签会显示当前正在播放的视频文件名。
注意,如果要播放视频,需要安装相应的多媒体插件。在Windows系统下,可以使用Qt的官方安装程序安装相应的插件。
阅读全文