WebRTC - Navigateur ne prend pas en demander mic autorisation d'accès pour le fichier html local
J'ai quelques simples webRTC code qui utilise getUserMedia
pour avoir accès à de l'utilisateur du micro. Maintenant, quand je charge que fichier html (enregistrés à mon localhost) dans mon navigateur, le navigateur ne peut pas demander mic autorisation d'accès et d'obtenir ainsi échoué à obtenir l'accès.
Mais lorsque j'exécute le même code html à l'intérieur de la w3schools.com l'éditeur, il vous demande de mic autorisation d'accès et sur l'autorisant à accéder à mon mic, il fonctionne très bien...
Pourquoi est-ce comportement étrange?
EJust pour vérifier, - vous êtes l'exécution de ce sur un serveur local? Pouvez-vous ajouter un peu de code?
OriginalL'auteur Yatendra Goel | 2013-01-14
Vous devez vous connecter pour publier un commentaire.
Lorsque vous ouvrez un fichier html en droit de désactiver le système de fichiers (file://préfixe), google Chrome blocage automatique de l'getUserMedia autorisations. Vous devez exécuter un serveur local.
J'ai démarré une sinatra serveur comme ceci:
Puis de lui donner auparavant.
http://localhost:4567
OriginalL'auteur Hugo
En raison de la sécurité de google Chrome ne s'ouvre pas de l'utilisateur de médias, par exemple, WebCam lors de l'exécution d'un
file:/*
document.Vous pourriez remplacer cependant la politique de sécurité par le démarrage de google chrome avec la
--disable-web-security
option de ligne de commande.Pour les tests de vérifier également la
--use-fake-device-for-media-stream
option.N. B. Lors de la spécification des options de ligne de commande assurez-vous il n'y a pas de chrome/chromium processus en cours d'exécution.
P. S lui Donner un essai en créant un fichier
test.html
contenantet de tuer toutes les instances de chrome et lancez google chrome comme ceci:
OriginalL'auteur siddhadev
Ce comportement est provoqué par Chrome paramètres de sécurité.
Si vous avez PHP est installé et vous ne voulez pas de configuration d'Apache ou d'autres plus avancées de serveur web, sans doute la façon la plus simple serait d'exécuter interne de PHP serveur web de cette façon (en supposant que vous avez votre site web des fichiers dans /home/utilisateur/web/):
php -S 127.0.0.1:3000 -t /home/user/web/
Voici une description de ces paramètres:
-S <addr>:<port> Run with built-in web server.
-t <docroot> Specify document root <docroot> for built-in web server.
Une fois que vous exécutez le serveur, lancez votre navigateur et ouvrez cette URL (en supposant que votre fichier de test est appelé webrtc.html):
http://127.0.0.1:3000/webrtc.html
OriginalL'auteur Jan Krupa
Juste quelques suggestions de dépannage:
Vérifier chrome://settings/contenu (faites défiler jusqu'à "Médias"), pour voir si vous avez accidentellement choisi ce site pour toujours autoriser ou de nier. (Je suis sur Chrome 26[dev]; ce peut être situé quelque part d'autre sur google Chrome 24.)
Également essayer de redémarrer votre navigateur, ce bit de Chrome est encore assez buggé dans mon expérience, et parfois un redémarrage résout.
Et assurez-vous que vous avez un gestionnaire d'erreurs dans votre getUserMedia () - il peut y avoir quelques informations supplémentaires.
OriginalL'auteur Ken Smith
Êtes-vous de charger le fichier par quelque chose comme " fichier://? Il semble que chrome ne donne pas accès à ces fichiers à toutes et ignore complètement la demande. Juste essayé moi-même et après avoir téléchargé le fichier sur un serveur de dev il a bien fonctionné.
Même paramètre pour permettre à toujours, il ne fonctionne toujours pas avec file://.
OriginalL'auteur boombatower
Vous ne pouvez pas exécuter le HTML5 qui utilise l'API getUsermedia localement sans l'aide d'un serveur local. Utilisez WampServer et de déposer votre fichier HTML5 à l'intérieur du dossier www.
OriginalL'auteur Nisham Mahsin
Cette réponse est pour chrome
Dans Chrome, vous pouvez utiliser le
--allow-file-access-from-files
indicateur pour permettre à la webcam de l'accès à partir d'un fichier local.Mac
Sur un mac, vous pouvez ouvrir le terminal et tapez:
changement
/path/to/file.html
avec votre cheminWindows
Dans Windows, vous pouvez créer un raccourci. Cliquez-droit sur Google Chrome Et sélectionnez dans le menu:
Copy To -> Desktop (shortcut)
, puis clic droit sur le raccourci et cliquez surproperties
ajouter le drapeau:Espère que cette réponse vous sera utile!
OriginalL'auteur Andy