javascript - API-ul Google WebSpeech aruncă eroarea 'not-allowed' pentru permisiunea microfonului


Folosesc API-ul WebSpeech de la Google găsit pe acest site: https://developers.google.com/web/updates/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API

Cu http.server din Python pe calculatorul meu Windows,

funcționează fără nicio problemă:

Încărc exact aceleași fișiere, aceeași API, dar nu funcționează pe serverul meu CentOS remote, aruncând o eroare 'not-allowed' pentru permisiunea microfonului:

Am crezut că problema ar putea fi legată de serverul HTTP. Așa că am încercat cu Apache Httpd, Python http.server și Nginx. Niciunul dintre ele nu a funcționat.

Ai vreo idee ce blochează microfonul? Mulțumesc!

Răspuns #1

Nu am putut găsi documentație care să susțină acest lucru, dar din propria mea experiență pot confirma că abia după instalarea unui certificat SSL pe un site web, Chrome a încetat să îl blocheze de la a solicita acces la microfon.

Răspuns #2

Am întâmpinat și not-allowed - încercând să accesez microfonul din Chrome într-un iframe cross-origin. Rezolvat prin adăugarea allow="microphone;" la iframe:

<iframe src="mysrc" allow="microphone;"></iframe>

Notă: Este necesar și utilizarea HTTPS pentru pagina părinte și pagina iframe

Referință: https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-permissions-in-cross-origin-iframes