【问题标题】:pyQT4 Web Browser Python grant permission (webcam)pyQT4 Web 浏览器 Python 授予权限(网络摄像头)
【发布时间】:2016-04-26 03:41:23
【问题描述】:

我需要制作一个非常简单的用 python 包装的网络浏览器。我为此使用 pyQt4。我可以很容易地创建一个小浏览器来加载网页,几乎一切正常。我遇到的问题是无法访问网络摄像头。导航到任何尝试访问网络摄像头的 url(通过 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 演示,该演示应立即提示访问网络摄像头。但事实并非如此。所有要求网络摄像头权限的网站都不起作用。

注意: 我试图定义权限请求,然后授予访问权限。但是,它仍然什么也没做。我可能在这里做错了什么?

感谢你们提供的任何帮助。欣赏它。

【问题讨论】:

    标签: permissions pyqt pyqt4 webcam pyqt5


    【解决方案1】:

    QtWebKit 仅支持Geolocation and Notifications 作为权限请求。

    我认为它根本不支持 WebRTC,你可能想升级到 PyQt5 并改用QtWebEngine

    【讨论】:

    • 好的,所以我应该使用 PyQt5。你知道任何关于一个非常简单的浏览器的好教程,比如我上面的 PyQt4 吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-03-12
    • 2011-04-11
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多