我需要创建一个用python包装的非常简单的Web浏览器。我正在使用pyQt4。我可以很轻松地创建一个小浏览器来加载网页,几乎一切正常。我遇到的问题是访问网络摄像头不起作用。导航到任何尝试访问网络摄像头的网址(通过javascript getUserMedia())都不会做任何事情。甚至没有提示用户选择网络摄像头设备。
为什么会这样?
如何通过简单的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演示,该演示应立即提示进行网络摄像头访问。但事实并非如此。所有要求网络摄像头权限的网站都不起作用。
注意: 我尝试定义权限请求,然后授予访问权限。但是,它仍然没有做任何事情。我可能在这里做错了什么?
感谢您提供的任何帮助。欣赏它。
答案 0 :(得分:1)
QtWebKit仅支持Geolocation and Notifications作为权限请求。
我根本不认为它支持WebRTC,您可能希望升级到PyQt5并改为使用QtWebEngine。