python - QwebView 不播放 Youtube 视频

标签 python video youtube pyqt4 qwebview

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

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

但是,当我尝试打开 YouTube 视频时,它会显示空白屏幕。当我重新加载页面时,会出现一条简短的错误消息:

Play Back Is Not Supported On This Device

我尝试在 chromium 浏览器中观看 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

最佳答案

从 PyQt4 切换到 PySide

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


可以通过pip安装: pip 安装 -U PySide


或者包管理器(如果你使用 linux): sudo apt-get 安装 python-pyside 或者对于 python3: sudo apt-get 安装 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 时,您不必为您的网站发布源代码浏览器。

关于python - QwebView 不播放 Youtube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43711059/

相关文章:

python - 将 unix 时间戳更改为不同的时区

python - SimpleCV NameError:名称 'images'未定义

python - virtualenvwrapper.sh 使 shell 崩溃

javascript - 即时创建具有单独音轨的视频播放列表,今天这可能吗?

android - 无法通过 Intent 播放视频

Javascript - 如何在 iframe 中取消 YouTube 视频静音

python - 我在 Po!nts 上的 CodeHS 8.3.7 : Exlamat! 代码有什么问题?

c# - 在 .NET 中从 YouTube 获取 FLV

javascript - 从已知视频 ID 获取 YouTube 视频标题

YouTube 播放列表长度