PyQT4 Web Browser Предоставление разрешения Python (веб-камера)

Мне нужно сделать очень простой веб-браузер, завернутый в python. Я использую pyQt4 для этого. Я могу очень легко создать небольшой браузер для загрузки веб-страниц, и почти все работает отлично. У меня проблема в том, что доступ к веб-камере не работает. Перемещение по любому URL, который пытается получить доступ к веб-камере (с помощью getUserMedia() из JavaScript) ничего не делает. Даже не предлагает пользователю выбрать устройство веб-камеры.

Почему это?

Как дать разрешение на использование веб-камеры с простой программой pyQT4 python?

Вот что у меня так далеко:

from PyQt4 import QtCore, QtGui, QtWebKit


class myWindow(QtWebKit.QWebView):
    def __init__(self, parent=None):
        super(myWindow, self).__init__(parent)

        #self.page().mainFrame().addToJavaScriptWindowObject("myWindow", self)

        self.loadFinished.connect(self.on_loadFinished)

        self.page().featurePermissionRequested.connect(self.permissionRequested)

        self.load(QtCore.QUrl('https://pubnub.com/developers/demos/webrtc'))


    @QtCore.pyqtSlot()
    def on_loadFinished(self):
        #self.page().mainFrame().evaluateJavaScript(getJsValue)

    def permissionRequested(self, frame, feature):
        self.page().setFeaturePermission(frame, feature, QWebPage.PermissionGrantedByUser)

if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('myWindow')

    main = myWindow()
    main.show()

    sys.exit(app.exec_())

Этот код загружает демоверсию webrtc, которая должна немедленно запросить доступ к веб-камере. Но это не так. Все веб-сайты, которые запрашивают разрешения веб-камеры, не работают.

Примечание. Я попытался определить запрос на разрешение, а затем предоставить доступ. Однако, это все еще ничего не делает. Я мог бы сделать что-то не так здесь?

Спасибо за любую помощь, которую вы, ребята, можете предоставить. Ценить это.

1 ответ

QtWebKit поддерживает геолокацию и уведомления только в качестве запросов на разрешение.

Я не думаю, что он вообще поддерживает WebRTC, вы можете обновить его до PyQt5 и использовать вместо него QtWebEngine.

Другие вопросы по тегам