QwebView не воспроизводит видео с Youtube

Недавно я начал создавать веб-браузер с PyQt4, пока не столкнулся с проблемой. Когда я открыл YouTube, я понял, что не могу смотреть видео. После некоторых исследований я нашел это решение:

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

Однако, когда я попытался открыть видео на YouTube, он показывал пустой экран. Когда я перезагрузил страницу, появилось короткое сообщение об ошибке:

Play Back Is Not Supported On This Device

Я пытался смотреть видео на 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"))

Если я что-то упустил, полный код можно найти здесь


person XzibitGG    schedule 30.04.2017    source источник


Ответы (1)


Переход с PyQt4 на PySide

У меня тоже была эта проблема, и я думаю, что у меня может быть ответ. PyQt4 - не единственный вариант разработки приложений Qt на python, есть и 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 вам не нужно выпускать исходный код для вашего веб-браузера.

person Curlpipe    schedule 27.08.2018