[英]WebRTC, browser doesn't ask for permission to use camera and microphone - but locally it does
[英]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.