js获取本地视频时间长度

  js如何获取file控件中选择的视频文件的时长,播放时间长度,不需要通过服务器。

  解决办法:用URL对象创建视频文件本地url进行播放,使用video标签的duration获取时长(单位秒)。注意设置video的src不能立即获取,要不输出NaN,通过计时器来获取。

  js获取本地视频时间长度源代码如下

js获取本地视频时间长度

<style>#v{width:400px;height:300px}</style>
<video id="v" controls></video><br />
<input type="file" onchange="setVideoSrc(this)" />
<script>
    function getDuration() {
        if (!isNaN(v.duration)) {
            clearInterval(timer);
            alert(v.duration)
        }
        else {
            tryTime++;
            //超过获取视频长度最大重试次数
            if (tryTime >= maxTry) { clearInterval(timer); alert('无法获取视频长度!');}
        }
    }
    var timer,tryTime,maxTry=5,delay=500;
    function setVideoSrc(f) {
        clearInterval(timer);
        var url = URL.createObjectURL(f.files[0]);
        v.src = url;
        tryTime = 0;
        timer = setInterval(getDuration, delay);//直接获取不到duration,会NaN,计时器来获取
    }
</script>

 


原创文章,转载请注明出处:js获取本地视频时间长度

评论(0)Web开发网
阅读(158)喜欢(0)不喜欢(0)JavaScript/Ajax开发技巧