Our web-conference application utilizes a Flash client for video and audio communication. Video is handled through the Red5 Media Server, while audio is managed using WebRTC.
When attempting to access the microphone or camera in Flash, users are required to grant permission through the Flash Permission Window. However, Chrome also prompts for Mic and Camera Permission separately, which can be confusing for users as it's not very visible, often resulting in complaints about video functionality not working properly.
To address this issue, one possible solution I have considered is manually triggering the Chrome Permission prompt via a WebRTC call, accompanied by an arrow pointing towards where users should click to allow access.
Nevertheless, even after going through this process, upon granting permissions in Flash, the Chrome Mic and Camera Permission prompt reappears. It appears that Chrome fails to remember that permission was already granted.
So the question remains: is there a way to inform Chrome that permission has already been given, eliminating the need to ask again?
Here is the function used to request Camera permission in Chrome through SIP.js:
function getUserWebcamMedia(getUserWebcamMediaSuccess, getUserWebcamMediaFailure) {
if (userWebcamMedia == undefined) {
if (SIP.WebRTC.isSupported()) {
SIP.WebRTC.getUserMedia({audio:false, video:true}, getUserWebcamMediaSuccess, getUserWebcamMediaFailure); // Chrome permission prompt appears during this call
} else {
console.log("getUserWebcamMedia: webrtc not supported");
getUserWebcamMediaFailure("WebRTC is not supported");
}
} else {
console.log("getUserWebcamMedia: webcam already set");
getUserWebcamMediaSuccess(userWebcamMedia);
}
};
As for accessing the camera in Flash, here is the code snippet:
var _camera:Camera = null;
_camera = Camera.getCamera();
...
_video = new Video();
_video.attachCamera(_camera); // Flash prompt appears during this call
I apologize if the situation is unclear. Feel free to ask for more information if needed.