Source code for RWESharp.ui.FunnyVideo
from PySide6.QtCore import Slot, Qt
from PySide6.QtMultimedia import QAudioOutput, QMediaPlayer
from PySide6.QtMultimediaWidgets import QVideoWidget
from PySide6.QtWidgets import QWidget
[docs]
class FunnyVideo(QWidget):
[docs]
def __init__(self, manager, closeonfinish, url, title):
super().__init__()
# self.setWindowFlag(Qt.WindowType.FramelessWindowHint)
self.manager = manager
self.video = QVideoWidget(self)
self.audio = QAudioOutput(self)
self.player = QMediaPlayer(self)
self.player.setVideoOutput(self.video)
self.player.setAudioOutput(self.audio)
self.player.setSource(url) # reasons beyond
self.closeonfinish = closeonfinish
self.player.mediaStatusChanged.connect(self.frame)
self.player.play()
size = 250
self.setMinimumSize(size, size)
self.video.setMinimumSize(size, size)
self.setWindowTitle(title)
self.show()
[docs]
@Slot(QMediaPlayer.MediaStatus)
def frame(self, status: QMediaPlayer.MediaStatus):
if status == status.NoMedia or status == status.EndOfMedia:
if self.closeonfinish:
self.manager.application.exit(0)
self.deleteLater()