2016-04-26 64 views
0

我需要製作一個非常簡單的web瀏覽器,用python包裝。我正在使用pyQt4。我可以很容易地創建一個小瀏覽器來加載網頁,幾乎一切正常。我遇到的問題是訪問攝像頭不起作用。導航到任何嘗試訪問網絡攝像頭的URL(通過javascript getUserMedia())都不會執行任何操作。甚至不提示用戶選擇網絡攝像頭設備。pyQT4 Web瀏覽器Python授予權限(網絡攝像頭)

這是爲什麼?

我該如何授予使用網絡攝像頭使用簡單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僅支持Geolocation and Notifications作爲權限請求。

我不認爲它完全支持WebRTC,您可能想升級到PyQt5並使用QtWebEngine代替。

+0

好的,我應該使用PyQt5。你知道任何一個非常簡單的瀏覽器的好教程,就像我上面的PyQt4一樣嗎?謝謝 – alexward1230