在 QWebEngineView 中观看视频时无法使用全屏

Posted

技术标签:

【中文标题】在 QWebEngineView 中观看视频时无法使用全屏【英文标题】:Cannot use fullScreen when watching video in QWebEngineView 【发布时间】:2017-11-16 10:05:48 【问题描述】:

使用PyQt5 QWebEngineView,看视频时无法使用fullScreen:

import sys 
from PyQt5 import QtWidgets, QtGui, QtCore 
from PyQt5.QtWebEngineWidgets import * 

app=QtWidgets.QApplication(sys.argv) 
w=QWebEngineView() 
w.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True)
w.settings().setAttribute(QWebEngineSettings.javascriptEnabl‌​ed, True) 
w.settings().setAttribute(QWebEngineSettings.FullScreenSuppo‌​rtEnabled, True)
w.page().fullScreenRequested.connect(QWebEngineFullScreenReq‌​uest.accept) 
w.load(QtCore.QUrl('56.com/w94/play_album-aid-14364505_vid-M‌​TQ3NDUxMjY3.html'))

w.showMaximized() 
app.exec_()

【问题讨论】:

56.com/w94/play_album-aid-14364505_vid-M‌​TQ3NDUxMjY3.htmlhttp://www.56.com/w94/play_album-aid-14364505_vid-M‌​TQ3NDUxMjY3.html 当您直接访问链接时,它告诉我该地点不存在并将我重定向到主页。 【参考方案1】:

QWebEnginePage::fullScreenRequested 信号有一个名为“request”的参数和一个名为“accept()”的函数。所以你必须打电话

request.accept()

但是您的代码使用类型名称 (QWebEngineFullScreenRequest) 并且没有引用这个确切的对象。

https://doc.qt.io/qt-5/qwebenginepage.html#fullScreenRequested

【讨论】:

【参考方案2】:

你可以参考下面的代码:

m_webView->settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true);

connect(m_webView->page(), &QWebEnginePage::fullScreenRequested, this, [this] 
(QWebEngineFullScreenRequest fullScreenRequest) 
        fullScreenRequest.accept();
        qDebug()<<"UI: fullScreenRequested: "<<fullScreenRequest.toggleOn()<<endl;
    );

【讨论】:

以上是关于在 QWebEngineView 中观看视频时无法使用全屏的主要内容,如果未能解决你的问题,请参考以下文章

如何获取在 iOS 应用中观看的持续时间视频

如何检查用户在 html5 视频播放器中观看了完整视频

在 Phonegap / Sencha 中观看 YouTube 的最佳实践

在运行 XNA 游戏时在 Visual Studio 中观看控制台输出面板

在 Windows 中观看 tomcat 日志文件

QWebEngineView:静音散景图例时“无法读取未定义的属性‘pageX’”