如何从移动网络中的navigator.getUserMedia()获取对象?

时间:2017-06-15 20:51:55

标签: javascript google-chrome audio safari mobile-website

尝试在HTML5和WebRTC中从MediaStream返回MediaDevices获取JavaScript参考/承诺。

此处的JavaScript在iOS和Android上的Chrome和Safari上运行。

navigator.mediaDevices.getUserMedia(session, initRec , onErr);

这会抛出TypeError: undefined is not an object (evaluating 'navigator.mediaDevices.getUserMedia')

很好,让我们尝试稍微过时的方法:

navigator.getUserMedia(parms,initfunc,errfunc);

这会抛出TypeError: navigator.getuserMedia is not a function. (In 'navigator.getUserMedia(parms,initfunc,errfunc)', 'navigator.getUserMedia' is undefined)

注意:这两个调用都适用于桌面版本。 移动网络EVER是否适用于录音?

2 个答案:

答案 0 :(得分:0)

Safari(或iOS上的任何浏览器)在即将推出的Safari 11之前不支持getUserMedia和WebRTC。有关详细信息,请参阅webkit blog post,并注意它没有提及MediaRecorder API。

答案 1 :(得分:0)

尝试通过 HTTPS 提供网页。我了解到 iOS Safari 只允许通过安全连接访问麦克风(和摄像头)。

我在 Ionic Angular 应用程序中实现 ng-audio-recorder 时遇到了同样的问题。在桌面上完美运行时,移动 safari 抛出了这个错误。切换到 HTTPS 解决了这个问题。