使用本机JavaScript获取HTML5视频的宽度和高度

kav*_*kav 4 javascript css video html5

我试图获得标签的宽度和高度,我使用以下标记:

<div class="masked" id="video_container">
    <video id="video" loop="loop" muted="muted" tabindex="0" style="width: 100%; height: 100%;">
        <source src="..." type="..."</source>
        <source src="..." type="..."</source>
    </video>
</div>
Run Code Online (Sandbox Code Playgroud)

关键部分是宽度和高度属性都设置为100%,当窗口改变时,视频的宽高比被保存,但我无法得到它的实际宽度和高度.

我尝试使用offsetWidth和offsetHeight属性获取值,但它们返回视频的实际大小.

编辑:

这是为我工作的代码段:

var videoActualWidth = video.getBoundingClientRect().width;
var videoActualHeight = video.getBoundingClientRect().height;

var aspect = videoActualWidth / videoActualHeight;

if (w / h > aspect) {
    video.setAttribute("style", "height: 100%");
} else {
    video.setAttribute("style", "width: 100%");
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 10

此代码将为您提供视频标记的尺寸(而不是视频本身的尺寸)

var video = document.getElementById("video");
var videotag_width = video.offsetWidth;
var videotag_height = video.offsetHeight;
Run Code Online (Sandbox Code Playgroud)

此代码将为您提供当前正在播放的视频的尺寸

var video = document.getElementById("video");
var video_height = video.videoHeight;
var video_width = video.videoWidth;
Run Code Online (Sandbox Code Playgroud)

  • 重要的是要注意`video.videoWidth`给出了CSS像素中视频的内在尺寸.如果视频完全缩放,则它与元素的尺寸不同.元素的尺寸也不一定等于视频的尺寸,因为默认情况下它会缩放以适合元素内部.我无法找到答案我设计了一个解决方案([根据宽高比差异计算尺寸](https://nathanielpaulus.wordpress.com/2016/09/04/finding-the-true-dimensions-of -an-HTML5的视频活性区域/)).(披露:这是我的博客). (3认同)