Я работаю над приложением, в котором отображаются несколько потоков vlc (rtsp), и, дважды щелкнув один из них, поток должен отображаться в полноэкранном режиме.
Приложение представляет собой python 3.7 с использованием pyqt5 и vlc-qt.
Код следующий:
import sys
import vlc
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtPrintSupport import *
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
self.sizeHint = lambda: QSize(1280, 900)
self.move(100, 10)
self.videoFrame = QFrame()
self.setCentralWidget(self.videoFrame)
self.vlcInstance = vlc.Instance(['--video-on-top'])
self.videoPlayer = self.vlcInstance.media_player_new()
self.videoPlayer.set_mrl("rtsp://xxx.xxx.xxx.xxx", "network-caching=300")
self.videoPlayer.audio_set_mute(True)
if sys.platform.startswith('linux'): # for Linux using the X Server
self.videoPlayer.set_xwindow(self.videoFrame.winId())
elif sys.platform == "win32": # for Windows
self.videoPlayer.set_hwnd(self.videoFrame.winId())
elif sys.platform == "darwin": # for MacOS
self.videoPlayer.set_nsobject(int(self.videoFrame.winId()))
self.videoPlayer.play()
self.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setApplicationName("VLC Test")
window = MainWindow()
app.exec_()
При двойном щелчке на видео появляется следующее консольное сообщение:
[000001e0a128e630] Ошибка вывода звука mmdevice: невозможно инициализировать COM (ошибка 0x80010106)
[000001e0a12c8710] Ошибка вывода звука mmdevice: невозможно инициализировать COM (ошибка 0x80010106)
[000001e0a2927420] Ошибка отображения основного Vout: не удалось установить полный экран
Сообщение "Не удалось установить полноэкранный режим" появляется, как только я дважды щелкаю.
У кого-нибудь есть идеи, в чем может быть проблема?
Заранее спасибо