from PyQt5 import QtMultimedia, QtMultimediaWidgets
from PyQt5.QtCore import QDir, Qt, QUrl, QSizeF
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer, QMediaPlaylist
from PyQt5.QtMultimediaWidgets import QVideoWidget, QGraphicsVideoItem
from PyQt5.QtWidgets import (QApplication, QFileDialog, QHBoxLayout, QLabel,
QPushButton, QSizePolicy, QSlider, QStyle, QVBoxLayout, QWidget, QStackedWidget,
QStackedLayout, QGraphicsView, QGraphicsScene)
from PyQt5.QtWidgets import QMainWindow,QWidget, QPushButton, QAction
from PyQt5.QtGui import QIcon
import sys, glob
class VerySimpleMediaPlayer(QWidget):
def __init__(self, parent):
super().__init__(parent)
self.media_player = QtMultimedia.QMediaPlayer(self)
self.media_widget = QtMultimediaWidgets.QVideoWidget(self)
self.media_player.setVideoOutput(self.media_widget)
self.media_widget.show()
self.media_player.setMedia(QMediaContent(QUrl.fromLocalFile('avideo.mp4')))
self.media_player.mediaStatusChanged.connect(self.look)
layout = QVBoxLayout()
self.real = QStackedWidget()
self.button = QPushButton()
self.button.setText('Push Me PLS!')
self.real.addWidget(self.button)
self.button.clicked.connect(self.clicked)
self.real.addWidget(self.media_widget)
layout.addWidget(self.real)
self.setLayout(layout)
self.awidget = QWidget()
bx = QVBoxLayout()
lbl = QLabel()
lbl.setText('Video Has Finished!')
bx.addWidget(lbl)
self.awidget.setLayout(bx)
self.real.addWidget(self.awidget)
def clicked(self):
self.media_player.play()
self.real.setCurrentIndex(self.real.currentIndex() + 1)
def look(self, state):
if state == 7:
self.real.setCurrentIndex(self.real.currentIndex() + 1)
app = QApplication(sys.argv)
player = QMainWindow()
player.setCentralWidget(VerySimpleMediaPlayer(player))
player.show()
sys.exit(app.exec_())
It works good but the only problem is that the videos are playing horizontally even if the video is a vertical video like 800 x 1600.
Is there any way to rotate videos either automatically or non-automatically?