LINUX.ORG.RU

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

 , ,


0

1

Всем доброго времени суток! Появилась необходимость сделать собственный простенький плеер для просмотра видеопотока с 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 (всего исправлений: 1)

Может быть кому-то поможет, ребята, это Qtшный баг, использовал QGraphicsScene, работает очень хорошо.

Это по ссылке. На похожую проблему жаловался один товарищ... Видимо в C++ тоже такая трабла.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Если это баг Qt, то сначала попробую проделать тоже самое с последними версиями Qt и PyQt. О результатах сообщу)) Спасибо!)

rudre
() автор топика
Ответ на: комментарий от rudre

Qt и PyQt 5.5.1 - тоже самое. Попробую QGraphicsScene

rudre
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.