'Google chrome DOMException: Permission denied by system for navigator.mediaDevices.getUserMedia
It's November of 2019, this JavaScript code works in FireFox (70.0.1 (64-bit)), Safari (13.0.2 (15608.2.30.1.1)), Opera (Version:65.0.3467.48), On a Windows Chrome Version 70.0.3538.77 (64-bit), this code works. but NOT in MacOS Google Chrome (Version 78.0.3904.108 (Official Build) (64-bit)):
navigator
.mediaDevices
.getUserMedia({video: true, audio: true})
.then(stream => {
console.log("success!")
})
.catch(e => {
console.log("e: ", e);
});
In Chrome's console, I got: DOMException: Permission denied After much googling, I haven't found anything up to date. How exactly do we use JS to request camera access in Chrome?
Solution 1:[1]
Since MacOS Mojave, camera and microphone require OS permissions.
This applies to all non-Apple products, including all browsers other than Safari.
Check System Preferences > Security & Privacy > Privacy > Camera & Microphone. Make sure Chrome is listed and has a checkbox.
You should have gotten a special OS prompt about this the first time Chrome tried to access them. But if it accidentally got blocked somehow, you won't ever be prompted again.
Solution 2:[2]
In my case, I did not realize the project I was working in was adding a security header, blocking the possibility of microphone use:
Feature-Policy "microphone 'none'; geolocation 'none'"
Solution 3:[3]
In my case, this error was occurring for me even though the site in question did not appear under blocked sites on the microphone setting page.
I had to go to Site Settings -> View Permissions and Data stored across all sites -> Find my Site -> Click Reset Permissions to fix the issue.
Solution 4:[4]
Feature-Policy has now been renamed to Permissions-Policy in the spec, and this article will eventually be updated to reflect that change. src
In my case, I set a header with an empty parentheses
Permissions-Policy: microphone=()
and according to this document, it disables the access.
The empty allowlist ensures that the feature is disabled in all contexts everywhere.
So changing the header to
Permissions-Policy: microphone=(self)
solved my problem.
Solution 5:[5]
Windows 11 - Microphone Privacy Settings fix
From the other solutions it sounds like a variety of issues could be causing this problem. For me (Windows 11, Google Chrome) this issue was caused by my microphone being disabled in my Windows privacy settings.
To fix, click Start and search for "Microphone Privacy Settings". In the control panel that pops up, switch "Microphone access" to on.
Solution 6:[6]
It seems, on your browser media is disabled, try to enable your media source video/audio on your chrome browser
Solution 7:[7]
I got the same error in a slightly different case (on Windows 10, Chrome):
I was running a local server and accessed my own website from
http://127.0.0.1:5500/
.
The solution was to access it from
http://localhost:5500/
instead.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | jib |
Solution 2 | eazy_g |
Solution 3 | Kevin Lee |
Solution 4 | Saeed |
Solution 5 | Alex Crist |
Solution 6 | ndotie |
Solution 7 | Falk Tandetzky |