javascript - Mozilla 在附加视频 src 后不会触发视频标签事件

标签 javascript html google-chrome video mozilla

我在使用 Mozilla 时遇到问题,我需要调整视频尺寸以在整个 div 上传播,我尝试了 onloadedmetadataonloadeddata 以及其他事件。之前的所有事件在 Chrome 上都完美运行。如果我从 Mozilla 控制台手动使用scaleToFill,它就可以工作

这是代码

navigator.getUserMedia(constraints, handleUserMedia, handleUserMediaError);

function handleUserMedia(stream) {
  localVideo = document.getElementById('localVideo');
  sendButton.onclick = sendData
  localStream = stream;
  attachMediaStream(localVideo, stream);
  localVideo.onloadedmetadata = function (e) {
    scaleToFill(localVideo);
  }

function scaleToFill(videoTag) {
  var $video = $(videoTag),
      videoRatio = videoTag.videoWidth / videoTag.videoHeight,
      tagRatio = $video.width() / $video.height();
  if (videoRatio < tagRatio) {
    $video.css('-webkit-transform', 'scaleX(' + tagRatio / videoRatio + ')')
    $video.css('-moz-transform', 'scaleX(' + tagRatio / videoRatio + ')')
  } else if (tagRatio < videoRatio) {
    $video.css('-webkit-transform', 'scaleY(' + videoRatio / tagRatio + ')')
    $video.css('-moz-transform', 'scaleY(' + videoRatio / tagRatio + ')')
  }
}

谢谢。

最佳答案

该事件已为我触发。
您可能需要在调用 attachMediaStream() 函数之前附加它,但是,该事件可能在附加它之前就已触发。

var video = document.createElement('video');
document.body.appendChild(video);

video.onloadedmetadata = function(){alert('metadata loaded');};

navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia);

if (!navigator.getUserMedia) {
  alert('Your browser does not like GUM');
}

navigator.getUserMedia({
    video: true,
    audio: false,
  },

  function(stream) {
    if (navigator.mozGetUserMedia) {
      video.mozSrcObject = stream;
    } else {
      var URL = window.URL || window.webkitURL;
      video.src = URL.createObjectURL(stream);
    }
    video.play();
  },

  function(err) {
    console.log(err);
  }
);

关于javascript - Mozilla 在附加视频 src 后不会触发视频标签事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29494510/

相关文章:

javascript - 如何从 Ruby on Rails 辅助方法返回 javascript?

javascript - 使用 CSS/Javascript 完全删除元素

javascript - 如何使用 javascript 检查是否对服务器进行了调用

javascript - 如何在给定 URL 的网站上提取最大的图像(按尺寸)?

javascript - 从使用 POST 发送的 AJAX 请求中检索多个输入

javascript - JQuery Mobile 3 下拉日期选择器?

css - Google Chrome 浏览器中的文本垂直对齐错误

javascript - 是否可以找到设置元素属性的 javascript?

javascript - JS 滚动条不起作用

html - 使用 "position:absolute"样式时选择框不可点击