簡體   English   中英

"Vlc 不適用於 PyQt5 中的無框窗口和透明\/半透明背景"

[英]Vlc won't work with framelesswindow and transparent/translucent background in PyQt5

我正在制作一個用 vlc 播放視頻的窗口。 這是我的代碼

from PyQt5 import QtWidgets,QtCore,QtGui
import vlc
class Player(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.resize(600,400)
        self.mainframe=QtWidgets.QFrame(self)
        self.setCentralWidget(self.mainframe)
        self.mainframe.setStyleSheet("background:grey;border-radius:15px;")
        self.videoframe=QtWidgets.QFrame(self.mainframe)
        self.videoframe.setGeometry(10,10,580,380)
        self.videoframe.setStyleSheet("background:#333333")
        '''
        If i want to set transparent background and frameless window,video wont display only audio plays
        '''
        # self.setWindowFlags(
        #           QtCore.Qt.FramelessWindowHint 
        #         | QtCore.Qt.WindowStaysOnTopHint )
        # self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)
        self.instance=vlc.Instance()
        self.player = self.instance.media_player_new()
        self.player.set_hwnd(int(self.videoframe.winId()))
        media = self.instance.media_new('C:/Users/mishra/Downloads/Video/despacito.mp4')
        media.parse()
        self.player.set_media(media)
        self.player.play()
        
        
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = Player()
    window.show()
    sys.exit(app.exec_())

這也是 python-VLC github https://github.com/oaubert/python-vlc/issues/155 的一個問題

這可能是一個線索:我在實際的 VLC 應用程序 3.0.16 中遇到了同樣的問題。

僅當我啟用 Qt 作為我選擇的界面時才會發生這種情況。

聽起來這不是您的代碼的問題,而是 libVLC 庫對 Qt 的使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM