在视频中提取实际播放视频区域(即没有黑条)

时间:2015-03-21 16:02:54

标签: angularjs html5-video videogular

有没有办法在视频播放器中提取实际播放视频区域(例如x,y,宽度,高度)? 通过"实际播放视频",我的意思是黑条之间的部分(在视​​频容器具有与视频本身不同的宽高比的情况下)。

由于

1 个答案:

答案 0 :(得分:1)

我是Videogular的创造者。

您可以从API.mediaElement属性中提取该信息。

我建议您在onUpdateTime回调中提取信息,因为在加载视频元数据时您将收到视频对象尺寸。例如:

this.onUpdateTime = function (currentTime, totalTime) {
  this.currentTime = currentTime;
  this.totalTime = totalTime;

  var containerWidth = this.API.mediaElement[0].offsetWidth;
  var containerHeight = this.API.mediaElement[0].offsetHeight;
  var videoWidth = this.API.mediaElement[0].videoWidth;
  var videoHeight = this.API.mediaElement[0].videoHeight;
  console.log(containerWidth);
  console.log(containerHeight);
  console.log(videoWidth);
  console.log(videoHeight);

  var calcVideoHeight = videoHeight * containerWidth / videoWidth;
  var videoY = (containerHeight - calcVideoHeight) / 2;

  console.log(calcVideoHeight);
  console.log(videoY);

  console.log("actual playing area");
  console.log("x: " + this.API.mediaElement[0].offsetLeft + 
              " | y: " + videoY + 
              " | videoWidth: " + containerWidth + 
              " | videoHeight: " + calcVideoHeight);
};