QwebView不播放Youtube视频

时间:2017-04-30 20:35:42

标签: python video youtube pyqt4 qwebview

我最近开始使用PyQt4创建一个Web浏览器,直到我遇到问题。当我打开youtube时,我意识到我无法观看视频。经过一些研究,我找到了这个解决方案:

QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)

然而,当我尝试打开youtube视频时,它会显示一个空白屏幕。当我重新加载页面时,会显示一条简短的错误消息:

Play Back Is Not Supported On This Device

我尝试在Chrome浏览器中观看YouTube视频,但效果非常好。

我决定尝试这种方法:

self.Tab2Web.settings().setAttribute(QWebSettings.PluginsEnabled, True)

问题仍然存在。

相关的代码如下:

class Ui_MainWindow(QtGui.QTabWidget):

    def setupUi(self, MainWindow):
    MainWindow.setObjectName(_fromUtf8("MainWindow"))
    MainWindow.resize(1283, 756)    
    QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)
    self.centralwidget = QtGui.QWidget(MainWindow)
    self.centralwidget.setObjectName(_fromUtf8("centralwidget"))

如果我遗漏了某些内容,可以找到完整的代码here

1 个答案:

答案 0 :(得分:0)

从PyQt4切换到PySide

我也有这个问题,我想我可能会有答案。 PyQt4不是用Python开发Qt应用程序的唯一选择,还有PySide


您可以通过pip安装它: pip install -U PySide


或程序包管理器(如果使用Linux): sudo apt-get install python-pyside 或对于python3: sudo apt-get install python3-pyside


安装完成后,将PyQt4导入替换为:

from PySide import QtCore, QtGui
from PySide import QtWebKit
from PySide.QtWebKit import QWebSettings
from PySide.QtCore import Slot as pyqtSlot
from PySide.QtCore import QUrl
from PySide.QtNetwork import QNetworkRequest, QNetworkAccessManager

所有内容和功能均应完全相同,希望网络浏览器的youtube可以正常工作。

另一个好处是PySide拥有LGPL许可证,而PyQt4拥有GPL许可证,因此,在使用PySide时,您不必发布Web浏览器的源代码。