Как воспроизвести видео файл в PyQt5 с использованием Ot-Designer
Я пытаюсь запустить видео в окне, созданном в Qt Designer.
Почему при запуске данного кода выходит пустое окно, без воспроизведения видео в нем?
main.py
import os
import sys
from PyQt5 import QtWidgets, QtMultimedia, uic, QtCore
class Form(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QDialog.__init__(self, parent)
self.ui = uic.loadUi(os.path.join(os.path.dirname(__file__), "form.ui"), self)
self.player = QtMultimedia.QMediaPlayer(None, QtMultimedia.QMediaPlayer.VideoSurface)
file = os.path.join(os.path.dirname(__file__), "video.mp4")
self.player.setMedia(QtMultimedia.QMediaContent(QtCore.QUrl.fromLocalFile(file)))
self.player.setVideoOutput(self.ui.widget)
self.player.play()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = Form()
w.show()
sys.exit(app.exec())
form.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QVideoWidget" name="widget" native="true"/>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QVideoWidget</class>
<extends>QWidget</extends>
<header>PyQt5.QtMultimediaWidgets</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
Ответы (1 шт):
Автор решения: Владимир
→ Ссылка
Я не знал, что QMediaPlayer в PyQt5 изначально поддерживает только avi, но не mp4. Нужно просто установить кодеки https://codecguide.com/download_k-lite_codec_pack_basic.htm, как рассказали на этом сайте.
Теперь мой код работает!