簡體   English   中英

如果WebRTC呼叫已批准Chrome攝像頭,請不要尋求其許可

[英]Do not ask for Chrome Camera permission if it was already approved through WebRTC call

在我們的網絡會議應用程序中,我們具有Flash客戶端,通過該客戶端我們可以提供視頻和音頻通信。 通過Red5 Media Server完成視頻,通過WebRTC完成音頻。

當您嘗試訪問Flash中的麥克風或攝像機時,它將提示Flash權限窗口批准對視頻和攝像機的訪問。 但是,在Chrome中,它還會提示您輸入Chrome麥克風和相機權限。 這樣做的問題是Chrome Mic和“攝影機權限”不是很明顯,用戶通常會錯過此提示,然后抱怨視頻不起作用。

我正在考慮的解決方案是通過WebRTC調用手動觸發Chrome權限提示,並顯示指向允許按下位置的箭頭。

但是即使這樣做,一旦涉及Flash並且用戶批准了Flash Permission Window,Chrome Mic and Camera Permission提示也會再次彈出。 因此,Chrome似乎無法記住該權限已被授予。

問題是:有沒有一種方法可以讓Chrome知道權限已經存在,而無需再次詢問。

此功能可通過SIP.js要求在Chrome瀏覽器中獲得相機許可:

function getUserWebcamMedia(getUserWebcamMediaSuccess, getUserWebcamMediaFailure) {
if (userWebcamMedia == undefined) {
    if (SIP.WebRTC.isSupported()) {
        SIP.WebRTC.getUserMedia({audio:false, video:true}, getUserWebcamMediaSuccess, getUserWebcamMediaFailure); // Chrome permission prompt pops up on this call
    } else {
        console.log("getUserWebcamMedia: webrtc not supported");
        getUserWebcamMediaFailure("WebRTC is not supported");
    }
} else {
    console.log("getUserWebcamMedia: webcam already set");
    getUserWebcamMediaSuccess(userWebcamMedia);
}
};

這就是我在Flash中訪問相機的方式:

var _camera:Camera = null;
_camera = Camera.getCamera();
...
_video = new Video();       
_video.attachCamera(_camera); // Flash prompt pops up on this call

很抱歉,如果情況不是很清楚。 如果需要,我可以提供更多信息。

存儲webrtc權限的唯一方法是通過TLS / SSL連接(HTTPS)。 然后chrome可以存儲允許或禁止的網站。 這樣,當他們一次訪問您的網站並批准使用其媒體輸入時,則不必再批准該網站上的使用。

但是,由於Flash和WebRTC是獲取輸入的兩種不同方法,因此沒有一種權限可以更改另一種權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM