LINUX.ORG.RU

Сообщения rudre

 

Видео перестает отображаться после выхода из fullscreen

Всем доброго времени суток! Появилась необходимость сделать собственный простенький плеер для просмотра видеопотока с ip-камер. Раньше с PyQT не работал, поэтому прошу особо не пинать.

Запускаю плеер, видео начинает проигрываться. Делаю двойной клик по видео и оно переходит в полноэкранный режим. Делаю снова двойной клик, как и задумано происходит выход из полноэкранного режима, но при этом видео пропадает и в окне плеера просто черный экран. Если снова перейти в fullscreen, то в нём видео проигрывается. Не могу понять в чём проблема и почему так происходит. Если кто-то сможет мне помочь, то буду благодарен!

#!/usr/bin/python3
# -*- coding: utf-8 -*-

from PyQt5.QtCore import Qt, QUrl
from PyQt5 import QtGui
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtWidgets import (QApplication, QWidget, QGridLayout)
  

class VideoWidget(QVideoWidget):
  
    def __init__(self, parent=None):
        super(VideoWidget, self).__init__(parent)
  
    def mouseDoubleClickEvent(self, event):
        self.setFullScreen(not self.isFullScreen())
        event.accept()

class VideoPlayer(QWidget):
    def __init__(self, parent=None):
        super(VideoPlayer, self).__init__(parent)

        grid = QGridLayout()
        self.setLayout(grid)

        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.videoWidget = VideoWidget()
        self.mediaPlayer.setVideoOutput(self.videoWidget)
        self.mediaPlayer.setMedia(QMediaContent(QUrl("http://192.168.10.1:8008")))
        grid.addWidget(self.videoWidget, 0, 0)
        self.mediaPlayer.play()

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    player = VideoPlayer()
    player.resize(320, 240)
    player.show()
    sys.exit(app.exec_())

 , ,

rudre
()

RSS подписка на новые темы