JS的video获取时长,出现问题汇总

<video id="my_video_1" controls="controls" style=" width: 700px; height: 420px; margin: 0 auto; padding-top: 0px;"> <source src="@ViewBag.Url " type="application/x-mpegURL"> </video>

1,video在一部分手机可以播放,然而在一部分手机不可以播放的原因:这两个属性没添加 controls="controls"和autoplay="autoplay"

2,使用JQ获取video对象获取时长报错,根据我的调试发现,然而使用源生JS获取video对象获取时长成功:

获取不了:

$("#my_video_1").duration

获取时长:

document.getElementById("my_video").duration;

3,异步绑定获取video地址,后获取时长问题:

1》异步没success获取时长是失败的,一直为NAN

        var video = document.getElementById("my_video_1");
        $.ajax({
            type: "POST",
            url: "/Home/getVidUrl",
            data: "",
            success: function (json) {
                if (json != "") {
                    getVidDur();
                    $("#test").append(" <video id=‘my_video_" + i + "‘ controls=‘controls‘ style=‘ width: 100px; height: 200px; margin: 0 auto; padding-top: 0px;‘> <source src=‘" + json + " ‘ type=‘application/x-mpegURL‘> </video>");
                    i++;
                    //var video1 = document.getElementById("my_video_" + i + ""); //异步没加载完成获取时长是失败的
                    //alert(video1.duration)
                    //alert(json);
                }
                else {
                    alert("加载完成");
                }
            },
        });

而我们需要写下面方法调用获取:

 function getVidTime() {
        var json = [];
        for (var j = 1; j <= i - 1; j++) {
            var video = document.getElementById("my_video_" + j);
            alert(video.duration);
        }
   }

原文地址:https://www.cnblogs.com/May-day/p/8297975.html

时间: 2024-11-01 20:35:29

JS的video获取时长,出现问题汇总的相关文章

vue / js使用video获取视频时长

项目中遇到上传视频功能,需要有预览和获取视频时长功能,因之前使用upload(有需要的话可以参考下我之前的文章),这里就不赘述,直接用来上传视频,不过在上传之前和上传成功后的钩子里,获取不到时长: 没有时长怎么办呢,只能用原生JS来获取: 上传成功以后,将成功的路径绑定给video 使用js获取duration并赋给时间参数 这时你会发现,你得到的值是NaN 视频还未加载下来,无法同步获取到,使用定时器即可解决 OK了,现在可以获取到了 希望本文对你有所帮助! 原文地址:https://www.

使用FFMPEG进行一些视频处理(C#)视频合并、转码、获取时长

FFMPEG的强大无需多说,举几个用到的功能,直接贴代码了 还有更多命令用到时搜索即可 视频转码 public static string DecodeMp4ToFlv(string mp4, string format = ".flv", int timeout = 0) { var args = "-y -i {0} -vcodec copy {1}".Formatting("\"{0}\"".Formatting(mp4

java获取音频文件播放时长

方法一: 在项目开发过程中,需要获取音视频文件时长.查询资料后发现 JAVE能够完美得到想要的结果,JAVE项目简介如下: The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project. Developers can take take advantage of JAVE to transcode audio and video files from a format to another. I

【Android端 APP 启动时长获取】启动时长获取方案及具体实施

一.什么是启动时长? 1.启动时长一般包括三种场景,分别是:新装包的首次启动时长,冷启动时长.热启动时长 冷启动 和 热启动 : (1)冷启动:当启动应用时,后台没有该程序的进程,此时启动的话系统会分配一个新的进程给应用. (2)热启动:程序的进程依然存在,启动时通过已有进程启动进入到Activity显示页面的,就是热启动,或者从Android官网来看我们获取到的其实是温启动时长,就是Activity不存在的情况. (3)新装包的启动时长: 新装包的启动时长,预估是最长的,并且在5.0以下及5.

获取音、视频时长(NAudio,Shell32,FFmpeg)

参考网址:https://blog.csdn.net/u013810234/article/details/57471780 以下为本次测试用到的音.视频格式: audio :".wav;.mp3;.wma;.ra;.mid;.ogg;.ape;.au;.aac;"; vedio :".mp4;.mpg;.mpeg;.avi;.rm;.rmvb;.wmv;.3gp;.flv;.mkv;.swf;.asf;"; Note: 1. 测试音.视频均为对应格式的有效文件(下

获取音频时长的总结

需要实现的需求: 前端展示录音的时长 实现该需求的前提条件: 1.深海捷(录音厂商)提供了两个关于录音的接口,一个是下载接口(访问接口,直接就下载音频文件了), 另一个接口是播放接口(接口返回一个html文件,文件中用Object标签实现了播放,可是只能在ie下播放,在chrom中无法展示播放器) 2.如果使用深海捷的服务拨打电话后,是会有回调事件,返回录音时长存到数据库的,所以这种场景已经有录音时长的数据,前端直接展示就 可以 3.还有一种场景就是接下来需要实现的场景,用户手动上传录音,这个时

layui上传视频并获得视频时长的方法

layui官方上传视频时并没直接提供获取视频时长的方法,需要我们间接获得 HTML增加一个<video>标签,因为video标签可以帮我们获取视频时长 <video id="videoattr" width="250" height="100" ></video> 当然,你也可以设置隐藏. 然后JS就可以利用<video>的duration来得到时长. //同时绑定多个元素,并将属性设定在元素上 u

hive计算网页停留时长

hive表结构例如以下: create table pv_user_info( session_id string, user_id string, url string, starttime bigint ); 主要就是这几个字段实用.省略其它. 实现方式:userid和sessionid分组后并按时间降序排序,降序排序后.第一行就是该用户最后一次浏览的网页.最后一行是第一次浏览的网页,第一行的starttime和第二行的starttime相减就是第二行停留时间. 这里会有几个误差 用户最后一

用js获取视频播放时长

用js实现读取本地mp4文件时长 利用h5 video标签加载视频文件,在读取duration就可以了 问题在于要更换文件,使用<input type="file" > 标签发现读取的文件路径是隐藏的c:/fakepath/xxx.mp4 给video更换src时候会提示找不到文件... 又找了很久,大多是加载flash控件然后通过flash再取,不太喜欢这么做. 如今这H5的时代感觉这个小功能应该不是问题,又想了想,之前做过js读取本地图片在web上做预览,估计读个视频应