PyQt5 实现图像及视频播放功能

作者:沙与沫2024.01.17 11:05浏览量:8

简介:本文将介绍如何使用 PyQt5 实现图像和视频的打开和播放功能。我们将创建一个简单的 GUI 应用程序,用户可以打开和预览图像,以及播放视频文件。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

在 PyQt5 中,我们可以使用 QLabel 和 QMediaPlayer 类来实现图像和视频的打开和播放功能。以下是一个简单的示例代码:
首先,确保你已经安装了 PyQt5。如果没有,可以使用 pip 安装:

  1. pip install PyQt5

然后,创建一个新的 Python 文件,并输入以下代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QFileDialog, QLabel, QVBoxLayout, QWidget
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
class ImageAndVideoPlayer(QWidget):
def init(self):
super().init()
self.initUI()
def initUI(self):
self.setWindowTitle(‘Image and Video Player’)
self.setGeometry(300, 300, 300, 200)

创建布局和标签

layout = QVBoxLayout()
self.label = QLabel(self)
layout.addWidget(self.label)
self.setLayout(layout)

创建媒体播放器和控制按钮

self.player = QMediaPlayer(None, QMediaPlayer.VideoSurface)
self.player.setVideoOutput(self.label)
self.player.stateChanged.connect(self.onstate_changed)
self.openButton = QPushButton(‘Open Image/Video’)
self.openButton.clicked.connect(self.openFile)
layout.addWidget(self.openButton)
def on_state_changed(self, state):
if state == QMediaPlayer.PlayingState:
print(‘Playing’)
else:
print(‘Not playing’)
def openFile(self):
file_name,
= QFileDialog.getOpenFileName(self, ‘Open file’, ‘.’, ‘Images (.png .xpm .jpg);;Videos (.mp4 *.avi)’)
if file_name:
if self.player.media().canonicalUrl().isEmpty():

Set video file path and play video

video_content = QMediaContent(QUrl.fromLocalFile(file_name))
self.player.setMedia(video_content)
self.player.play()
else:

Load image if a video is already playing

pixmap = QPixmap(filename)
self.label.setPixmap(pixmap)
self.label.resize(pixmap.width(), pixmap.height())
self.openButton.setText(‘Change Image/Video’)
self.player.pause()
if name == ‘main‘:
app = QApplication(sys.argv)
player = ImageAndVideoPlayer()
player.show()
sys.exit(app.exec
())

article bottom image

相关文章推荐

发表评论

图片