PyQt5 简单视频播放器

1、主要组件

QVideoWidget:这个类主要用作播放视频的控件
QMediaPlayer :实现媒体播放的类

2、功能代码
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'GUI.ui'
#
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!
import sys

from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import QUrl
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtWidgets import QApplication, QMainWindow,QFileDialog


class Ui_MainWindow(QMainWindow):
    def __init__(self):
        super(Ui_MainWindow, self).__init__()
        self.setupUi(self)

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(600, 400)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.wgt_video = QVideoWidget(self.centralwidget)  # 创建一个 视频播放组件
        self.wgt_video.setGeometry(QtCore.QRect(50, 20, 500, 300))
        self.wgt_video.setObjectName("wgt_video")

        self.btn_open = QtWidgets.QPushButton(self.centralwidget)
        self.btn_open.setGeometry(QtCore.QRect(260, 320, 120, 50))
        self.btn_open.setObjectName("btn_open")
        MainWindow.setCentralWidget(self.centralwidget)


        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.btn_open.setText(_translate("MainWindow", "打开视频文件并播放"))

        self.player = QMediaPlayer()  # 创建视频播放管理器
        self.player.setVideoOutput(self.wgt_video)  # 视频播放输出的widget,就是上面定义的
        self.btn_open.clicked.connect(self.openVideoFile)   # 打开视频文件按钮

    def openVideoFile(self):
        print('open file')
         # 播放网络视频
        #self.player.setMedia(QMediaContent(QUrl.fromLocalFile("https://vd1.bdstatic.com/mda-hg6uempmez9u6mqi/sc/mda-hg6uempmez9u6mqi.mp4?auth_key=1562172911-0-0-4c22196ad1d0fcc49402d91336c999c5&bcevod_channel=searchbox_feed&pd=bjh&abtest=all")))
        #选择本地视频播放
        self.player.setMedia(QMediaContent(QFileDialog.getOpenFileUrl()[0]))  # 选取本地视频文件
        self.player.play()  # 播放视频

if __name__ == '__main__':
    app = QApplication(sys.argv)
    vieo_gui = Ui_MainWindow()
    vieo_gui.show()
    sys.exit(app.exec_())
3、功能展示

在这里插入图片描述

4、如果播放不了

如果播放不了,那大概率是自己电脑没有装备一个转码器,
也许会遇到只能播放avi格式视频,而mp4等格式无法播放的问题(DirectShowPlayerService::doRender: Unresolved error code 0x8040266 (IDisspatch error #102)),这需要下载一个解码器。

大意便是 PyQt5 當中的 QMediaPlayer 使用的後端僅能支援 avi 檔,並不支援 mp4。

為了解決這個問題,我們必須下載支援的解碼器並安裝,我們可以選擇的有 K-lite codecs 或者 LAV Filters,在此我安裝 K-lite。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

然后默认安装到底就可以播放了。

对于下载比较慢的小伙伴 这里提供 csdn 下载资源

文件参考:
PyQt5:QMediaplayer,QVideowidget播放视频

PyQt5 实现视频播放器(二) ,详细版本 ,适合新手入门

  • 12
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5是一个用于创建图形用户界面(GUI)应用程序的Python库。它是基于Qt框架的Python绑定,可以用于开发跨平台的应用程序。下面是使用PyQt5设计视频播放器的一般步骤: 1. 安装PyQt5:首先,你需要安装PyQt5库。你可以使用pip命令在命令行中执行以下命令来安装PyQt5: ``` pip install PyQt5 ``` 2. 导入必要的模块:在Python脚本中,你需要导入PyQt5的一些模块,例如`QtCore`、`QtGui`和`QtWidgets`。 3. 创建主窗口:使用`QMainWindow`类创建一个主窗口对象。 4. 添加视频播放器组件:在主窗口中添加一个视频播放器组件,可以使用`QMediaPlayer`类来实现。 5. 设计用户界面:使用Qt Designer工具来设计用户界面。Qt Designer是一个可视化设计工具,可以帮助你创建GUI应用程序的布局和组件。 6. 将设计文件转换为Python代码:将Qt Designer生成的.ui文件转换为Python代码。你可以使用`pyuic5`命令行工具来完成这个转换,例如: ``` pyuic5 design.ui -o design.py ``` 7. 在Python脚本中加载设计文件:在Python脚本中导入转换后的设计文件,并将其加载到主窗口中。 8. 实现视频播放功能:在Python脚本中编写代码来实现视频播放功能,例如打开视频文件、播放、暂停、停止等操作。 9. 运行应用程序:编写代码来运行应用程序,并显示主窗口。 这只是一个简单的概述,实际上设计一个视频播放器可能涉及到更多的细节和功能。你可以根据自己的需求和喜好来定制和扩展这个播放器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值