mediaDevices.getUserMedia无法在iOs 11中使用Safari 11(视频为黑色)

米奇

我找不到对此的解释。从我阅读的内容来看,Safari 11似乎正在与iOs 11的getUserMedia API配合使用。因此,我不明白此代码有什么问题(我的目标是在实时流中获取QR代码,但此处被阻止):

控制者

function BarcodeReaderQRCtrl($scope) {
  /* widget controller */
  var c = this;
  var constraints = { audio: true, video: { width: 640, height: 480 } };

  c.startMedia = function() {
    navigator.mediaDevices
      .getUserMedia(constraints)
      .then(function(mediaStream) {
        var video = document.getElementById('idvideo');
        video.srcObject = mediaStream;
        video.onloadedmetadata = function(e) {
          video.play();
        };
      })
      .catch(function(err) {
        console.log(err.name + ': ' + err.message);
      });
  };
}

的HTML

<div>
  <a class="btn btn-default" href="#" role="button" ng-click="c.startMedia()">Start</a>
  <div>
    <video id="idvideo"></video>
  </div>
</div>

有什么建议么?

商业自杀

问题不在于您所说的API,这是因为移动浏览器需要一个有效的click事件才能开始播放视频,因此video.play(),如果没有用户交互则无法在移动设备上运行。例如,此帖子对此进行了证明:https : //stackoverflow.com/a/16860922/6053654我通常要做的是:我仅play在视频上添加图标(仅在移动设备上)以诱使用户单击,然后绑定video.play()到此click事件。听起来很简单。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

navigator.mediaDevices.getUserMedia 返回 NotReadableError:无法启动视频源

iOS 11 getUserMedia无法正常工作?

我可以在Android / IOS Webview中使用navigator.mediaDevices.getUserMedia吗?

在JavaScript的navigator.mediaDevices.getUserMedia中设置采样频率

使用navigator.mediaDevices.getUserMedia录制浏览器音频

在vuejs 2中使用MediaDevices.getUserMedia()切换相机

导航器MediaDevices getUserMedia notAllowedError

调用 navigator.mediaDevices.getUserMedia() 或删除视频轨道后请求/添加网络摄像头

mediaDevices.getUserMedia,音频播放完毕后开始麦克风录制,Safari问题

无法使用Safari检查iOS 11设备

如何解决iOS 11 Safari getUserMedia“无效约束”问题

通过 MediaDevices.getUserMedia() 创建的文件是否保存在用户的浏览器中?

我可以使用MediaDevices.getUserMedia()连接到多个Webrtc流的音频输入设备吗?

使用 mediaDevices.getUserMedia 访问笔记本电脑上的前置摄像头

如何使用 navigator.mediaDevices.getUserMedia 降低麦克风输入音量?

UIScrollView setContentOffset:动画无法在iOS11中使用

JS,navigator.mediaDevices.getUserMedia() 不工作

navigator.mediaDevices.enumerateDevices在iOS Safari(13.2.3)上不返回任何音频输入设备

在iOs 13上使用Chrome 78未定义navigator.mediaDevices

localhost中不允许getUserMedia()-Safari 11

无法使用Swift在iOS 11中使用URL架构启动Touch ID和密码

2019年访问navigator.mediaDevices.getUserMedia()的方式

从navigator.mediaDevices.getUserMedia()获取字节流?

未定义不是对象(评估'navigation.mediaDevices.getUserMedia')

Firefox从不解析navigator.mediaDevices.getUserMedia()

相机无法在iOS上使用,getUserMedia中出现错误

视频无法在移动Safari中使用

使用MediaDevices.enumerateDevices()监视更改

为什么GetUserMedia无法在Google Chrome中显示视频?