微信开发: HTML5更改video的src路径后,更新后的视频宽高为0的解决方法

kevin.Zhu 发布于:2018-12-31 17:22 分类:文摘  有 20 人浏览,获得评论 0 条  

https://blog.csdn.net/Wonder233/article/details/77983038


本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Wonder233/article/details/77983038
<video id="video4" width="100%" height="400px" src="media/1.mp4"> 
    <source type="video/mp4">
</video>
从视频列表中选择视频将video中的src进行更改后,直接获取 videoHeight、videoWidth会得到 0 值

var video4 = $("#video4").get(0);
video4.src = "media/2.mp4";
var videoHeight = video4.videoHeight;  //0
var videoWidth = video4.videoWidth;    //0

解决方法如下: 
对视频更改来源或其他设置后要对视频元素进行更新,更改后需要重新加载 video 元素,在 video 元素加载完成后 (oncanplay),此时才能获取到正确的 videoHeight、videoWidth值。

var video4 = $("#video4").get(0);
video4.src = "media/2.mp4";
video4.load();
video4.oncanplay = function () {  
    var videoHeight = video4.videoHeight;  //2.mp4真实高度
    var videoWidth = video4.videoWidth;    //2.mp4真实宽度