PyQt5 简单视频播放器
生活随笔
收集整理的這篇文章主要介紹了
PyQt5 简单视频播放器
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1、主要組件
- 2、功能代碼
- 3、功能展示
- 4、如果播放不了
1、主要組件
QVideoWidget:這個(gè)類主要用作播放視頻的控件
QMediaPlayer :實(shí)現(xiàn)媒體播放的類
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) # 創(chuàng)建一個(gè) 視頻播放組件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() # 創(chuàng)建視頻播放管理器self.player.setVideoOutput(self.wgt_video) # 視頻播放輸出的widget,就是上面定義的self.btn_open.clicked.connect(self.openVideoFile) # 打開視頻文件按鈕def openVideoFile(self):print('open file')# 播放網(wǎng)絡(luò)視頻#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、如果播放不了
如果播放不了,那大概率是自己電腦沒(méi)有裝備一個(gè)轉(zhuǎn)碼器,
也許會(huì)遇到只能播放avi格式視頻,而mp4等格式無(wú)法播放的問(wèn)題(DirectShowPlayerService::doRender: Unresolved error code 0x8040266 (IDisspatch error #102)),這需要下載一個(gè)解碼器。
大意便是 PyQt5 當(dāng)中的 QMediaPlayer 使用的後端僅能支援 avi 檔,並不支援 mp4。
為了解決這個(gè)問(wèn)題,我們必須下載支援的解碼器並安裝,我們可以選擇的有 K-lite codecs 或者 LAV Filters,在此我安裝 K-lite。
然后默認(rèn)安裝到底就可以播放了。
對(duì)于下載比較慢的小伙伴 這里提供 csdn 下載資源
文件參考:
PyQt5:QMediaplayer,QVideowidget播放視頻
PyQt5 實(shí)現(xiàn)視頻播放器(二) ,詳細(xì)版本 ,適合新手入門
總結(jié)
以上是生活随笔為你收集整理的PyQt5 简单视频播放器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Dell optiplex 7060ss
- 下一篇: POI之PPT中生成表格简单实例