仅在未授予权限时请求getUserMedia

时间:2014-05-02 16:19:48

标签: javascript html5 google-chrome permissions

当我的网站请求访问其麦克风时,我正在创建警报以向用户提供其他通知。我已经读过Chrome浏览器,如果该网站是通过HTTPS提供的,则除非用户删除该权限,否则不会再次要求用户获得许可。但是,我注意到在我的非HTTPS网站上请求麦克风访问,该权限仍然保存。看来无论权限如何,调用getUserMedia 始终都会显示Chrome警报。

我有没有办法确定用户是否已经授予我的网站权限?如果用户未获得权限或已删除权限,我只希望显示提醒。

window.navigator = window.navigator || {};

navigator.getUserMedia = (navigator.getUserMedia
    || navigator.webkitGetUserMedia
    || navigator.mozGetUserMedia
    || navigator.msGetUserMedia
    || null);

if (navigator.getUserMedia /* && "Site not allowed" */) {
    // Show alert.
    navigator.getUserMedia(
        {
            audio: true
        },
        function(stream) {
            // Hide alert.
        },
        function(error) {
            switch (error.name) {
                case 'PERMISSION_DENIED':
                    // Permission denied
                    break;
                case 'NOT_SUPPORTED_ERROR':
                    // Media not supported
                    break;
                case MANDATORY_UNSATISFIED_ERROR:
                    // No media tracks of the type specified in the constraints are found.
                    break;
            }
        }
    );
} else {
    console.log('Browser doesn't support getUserMedia.');
}

0 个答案:

没有答案