m0_59228919 2022-02-16 17:53 采纳率: 44.4%
浏览 68

用input上传视频,怎么获取视频的时长

img

如题,用input上传视频,怎么获取视频的时长,用ref好像获取不了

  • 写回答

1条回答 默认 最新

  • 沐卿゚ 2022-02-16 18:04
    关注

    先声明几个id

    var filesId = document.getElementById('files');//获取id

    var videoId = document.getElementById('videoId');

    1、先去拿 input file 上传的 mp4视频的 本地路径;

    由于浏览器的安全限制,用户上传文件的时候,不允许看到本地路径的,但,这样就可以取到 本地路径。

    function getFileURL(file) {undefined

    var getUrl = null;

    if (window.createObjectURL != undefined) { // basic

    getUrl = window.createObjectURL(file);

    } else if (window.URL != undefined) { // mozilla(firefox)

    getUrl = window.URL.createObjectURL(file);

    } else if (window.webkitURL != undefined) { // webkit or chrome

    getUrl = window.webkitURL.createObjectURL(file);

    }

    return getUrl;

    }

    2、再去把获取到的本地路径赋值给 video 的 src;

    var selectFile = function(){undefined

    var url = getFileURL(this.files[0]);//把当前的 files[0] 传进去

    if (url) {undefined

    videoId.src = url;

    }

    }

    filesId.addEventListener('change', selectFile);//监听 change 事件,当 input file 发生变化的时候执行

    3、直接获取 video 的duration,限制时长超1分钟。

    如果确认 video 赋值了并且拿不到 duration ,设置一个延时就好了。 setTimeout(function(){ ... },1000)

    var duration = videoId.duration;

    if (Math.floor(duration) > 60) {undefined

    alert('视频不能大于60秒');

    }

    评论

报告相同问题?

问题事件

  • 创建了问题 2月16日

悬赏问题

  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估