你知道为什么以下代码在Android / Chrome上不起作用吗?
它适用于桌面/ Chrome.
function console_log(data) { console.log(data) var data_str = String(data); var $div = $('<div></div>'); $div.append(data_str); $('.console').append($div);}$(function(){ var constraints = { audio: true, vIDeo:false } //--- console_log('navigator.mediaDevices...'); console_log(navigator.mediaDevices); //--- // # TEST 01 # var userMedia = navigator.getUserMedia(constraints, function(){ console_log('---'); console_log('# TEST 01 # InsIDe Success Callback'); }, function(err){ console_log('---'); console_log('# TEST 01 # InsIDe Error Callback'); console_log(err); }); //--- navigator.mediaDevices.getUserMedia(constraints).then(function(stream) { console_log('---'); console_log('# TEST 02 # InsIDe Success Callback'); }).catch(function(err) { console_log('---'); console_log('# TEST 02 # InsIDe Error Callback'); console_log(err); });});
body { Font-family: arial; Font-size: 14px;}.console { Font-family: monospace; white-space: pre;}
<script src="https://AJAX.GoogleAPIs.com/AJAX/libs/jquery/2.1.1/jquery.min.Js"></script><div ></div>
以防万一,这里有Jsfiddle链接:
https://jsfiddle.net/2yum1a0w
要获得成功,请使用桌面/ Chrome打开并转到以下部分:结果…
https://jsfiddle.net/2yum1a0w/embedded
在桌面/ Chrome上我得到:
navigator.mediaDevices...[object MediaDevices]---# TEST 01 # InsIDe Success Callback---# TEST 02 # InsIDe Success Callback
在AndroID / Chrome上我得到:
navigator.mediaDevices...[object MediaDevices]---# TEST 01 # InsIDe Error CallbackNotAllowedError: Permission denIEd---# TEST 02 # InsIDe Error CallbackNotAllowedError: Permission denIEd
顺便说一句,在桌面/ firefox上我得到:
navigator.mediaDevices...[object MediaDevices]
以及以下控制台错误:
TypeError: navigator.getUserMedia is not a function
您对如何在AndroID / Chrome上运行这项工作有任何想法吗?
编辑1
基于以下Joseph Gordy的回答,我试过:
https://jsfiddle.net/wrmvn8k4/
https://jsfiddle.net/wrmvn8k4/embedded
现在可以在桌面/ firefox上正常工作:
navigator.mediaDevices...[object MediaDevices]---# TEST # InsIDe Success Callback
但在AndroID / Chrome上我得到:
navigator.mediaDevices...[object MediaDevices]---# TEST # InsIDe Error CallbackNotAllowedError: Permission denIEd
谢谢!
解决方法:
我遇到了同样的问题.移动浏览器甚至没有询问权限.
原因是SSL!您必须使用安全连接
检查“需要安全上下文”部分here
总结以上是内存溢出为你收集整理的javascript – navigator.getUserMedia无法在Android / Chrome上运行全部内容,希望文章能够帮你解决javascript – navigator.getUserMedia无法在Android / Chrome上运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)