文章目录

  • 1、主要组件
  • 2、功能代码
  • 3、功能展示
  • 4、如果播放不了

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 sysfrom 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,QFileDialogclass 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.translateMainWindow.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 实现视频播放器(二) ,详细版本 ,适合新手入门

PyQt5 简单视频播放器相关推荐

  1. PyQt5 实现视频播放器

    已经更新了详细的实现过程PyQt5 实现视频播放器(二) ,详细版本 ,适合新手入门,并附上完整示例代码. Qt5 比qt4 有了很多新的功能,今天实现一个小的视频播放器的demo.实现的时候在网上发 ...

  2. android 实现视频播放功能,android开发之简单视频播放器(VideoView)

    简单视频播放器的使用 一.简单使用videoView和MediaController实现播放控制 1.添加需要的权限 2.设置布局 android:id="@+id/main_video&q ...

  3. Opencv 简单视频播放器

    最近看了一下[1]_2011_OpenCV 2 Computer Vision Application Programming Cookbook.pdf,写了一个利用Opencv库实现的简单视频播放器 ...

  4. <Python>PyQt5+ffmpeg,简单视频播放器的编写(解码器:K-lite)

    更新日志: 202211251640:第一版,基本功能:视频导入,播放.暂停.播放时间显示.音量控制 视频播放器 概述:本文是利用PyQt5加上ffmpeg来编写一个具备基本功能的视频播放器(播放.暂 ...

  5. 轻松玩转Python:打开文件夹,搜索视频文件,实现简单视频播放器

    目录 1.功能描述: 2.具体实现: 3.代码实现: 4.执行效果: 1.功能描述: 这段代码实现了一个简单的视频播放器,可以打开指定的文件夹并搜索其中的视频文件,将搜索结果展示在列表框中,用户可以选 ...

  6. Android Studio——简单视频播放器

    1.界面分析 三个界面:主界面,视频列表界面,视频播放界面,如下图所示: 2.实现思路 (1)主界面设计 很简单,就一个背景和一个控件,然后为控件设置点击事件,然后跳转到视频列表界面 activity ...

  7. 原生h5+css3 实现简单视频播放器组件

    视频播放器组件案例 实现效果 实现功能 全屏切换 进度条点击跳播 音量点击设置大小 涉及知识点 video对象属性 .duration 获取视频总长度(秒) .currentTime 当前播放时间(秒 ...

  8. SDL,ffmpeg实现简单视频播放器

    看了雷神的一些文章和解释,自己重新实现了一下相关代码的东西,做为加深. 一起在音视频领域加油咯! // 基于FFmpeg用SDL实现一个视频播放器(.h264) ///* AVFormatContex ...

  9. 学雷前辈暑期小学期课简单视频播放器制作笔记(二)

    因为论文的方向分了(是的,是分的,不是自己选的,个中原因一言难尽.研究生毕设,刚开始,12月份答辩,之前做的全是内容开发,虽然很绝望但是还是要一点点做,论文方向是HEVC的编码优化,目前没啥思路,看了 ...

最新文章

  1. ML基石_14_Regularization
  2. Cisco的相关配置
  3. freertos 定时器 不启动_FreeRTOS 从入门到精通8--软件定时器应用
  4. Windows下MySql安装【图文】
  5. _tcsnicmp_wcsnicmp
  6. mysql获取时间_时间类型_时间格式化
  7. 基于java Springboot+Vue+shiro前后端分离疫情防疫管理系统设计和实现2.0
  8. 古有诸葛亮八卦阵阻敌,今有iptables护网安
  9. javascript核心_功能强大的JavaScript数组
  10. slqite3库查询数据处理方式_SQLite数据库使用 常用命令
  11. C++发送HTTP请求获取网页HTML代码
  12. .NET设计模式(9):桥接模式(Bridge Pattern)(转)
  13. 各种不同服务器301重定向设置代码大全
  14. windows7局域网传输到mac_计算机三级网络技术(5):局域网技术基础及应用
  15. 数据结构——二叉树错题集
  16. 通过xsd校验xml文件
  17. linux下开启、关闭、重启mysql服务
  18. acwing——数学知识(四)Nim游戏
  19. Windows DOS内部命令详解04——del、ren、cls、ver、date、time
  20. 防水行业在vivo投放广告有效果吗?vivo广告开户全国代理商!

热门文章

  1. 【十二】拉普拉斯变换——1
  2. 数据源(DataSources)
  3. VC++中CString和char*的相互转换
  4. 协议数据单元I-PDU Multiplexer深入理解
  5. php环信发送消息,环信即时通讯 —— 消息、会话
  6. Linux下解决conio.h的问题
  7. 计算机适合女生的岗位 就业方向有什么
  8. Android 好看的搜索界面,大赞Animation
  9. VFW.h宏解析 (视频开发必备) ----------纠结了2天憋出来的东西
  10. arduino串口显示屏