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.