PyQt5 实现图像及视频播放功能
2024.01.17 11:05浏览量:8简介:本文将介绍如何使用 PyQt5 实现图像和视频的打开和播放功能。我们将创建一个简单的 GUI 应用程序,用户可以打开和预览图像,以及播放视频文件。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
在 PyQt5 中,我们可以使用 QLabel 和 QMediaPlayer 类来实现图像和视频的打开和播放功能。以下是一个简单的示例代码:
首先,确保你已经安装了 PyQt5。如果没有,可以使用 pip 安装:
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())

发表评论
登录后可评论,请前往 登录 或 注册