【问题标题】:"Fullscreen is unavailable" embedding YouTube videos as iframe in QWebEngineView“全屏不可用”将 YouTube 视频作为 iframe 嵌入 QWebEngineView
【发布时间】:2018-04-12 18:44:32
【问题描述】:

我正在尝试在 QWebEngineView 中嵌入 youtube 视频,视频加载正常但全屏按钮被禁用,并显示此消息“全屏不可用”,即使嵌入代码确实具有“allowfullscreen”

代码sn-p:

web = QWebEngineView()
htmlString = """
            <iframe width="560" height="315" src="https://www.youtube.com/embed/L0MK7qz13bU?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
             """
web.setHtml(htmlString, QUrl(baseUrl))

【问题讨论】:

    标签: python python-3.x pyqt pyqt5 qwebengineview


    【解决方案1】:

    要启用全屏,需要启用FullScreenSupportEnabled 属性并接受页面的fullScreenRequested 顺序。

    if __name__ == '__main__':
        app = QApplication(sys.argv)
        web = QWebEngineView()
        web.settings().setAttribute(QWebEngineSettings.FullScreenSupportEnabled, True)
        web.page().fullScreenRequested.connect(lambda request: request.accept())
        baseUrl = "local"
        htmlString = """
                <iframe width="560" height="315" src="https://www.youtube.com/embed/L0MK7qz13bU?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
                 """
        web.setHtml(htmlString, QUrl(baseUrl))
    
        web.show()
        sys.exit(app.exec_())
    

    截图:

    【讨论】:

    • 顺便说一句,我在 PyCharm 控制台中看到了这个警告,知道这意味着什么吗? “[20068:5672:1031/203943.715:ERROR:gl_context_wgl.cc(78)] 无法共享 GL 上下文。”
    • 那些是 Chromium 警告,Qt 用于 QWebEngineView 的后端,告诉你有些东西不受支持,但它们不是错误。如果您从控制台运行,这些消息与 google-chrome、mozilla 等生成的消息相同。
    • 再次感谢!
    猜你喜欢
    • 2012-04-07
    • 2015-02-27
    • 1970-01-01
    • 2013-08-30
    • 2012-02-17
    • 2020-04-19
    • 2020-10-01
    • 2020-11-28
    • 2013-02-13
    相关资源
    最近更新 更多