记录实用有价值的内容

JS 获取视频时长

基础方法:

<video id="my_video_id" src="http://domain.com/test.mp4" />
document.getElementById("my_video_id").duration

高级方法:封装为promise实现异步

/**
 * 获取视频时间长度
 * @param {file} file 文件对象
 * @returns number 返回视频时长 单位秒
 */
const getVideoTime = function(file) {
    return new Promise((resolve, reject) => {
        const URLO = window.URL || window.webkitURL
        const url = URLO.createObjectURL(file)
        const audioElement = new Audio(url)
        audioElement.addEventListener('loadedmetadata', _event => {
            try {
                const duration = parseInt(audioElement.duration) || 0
                URLO.revokeObjectURL(file)
                resolve(duration)
            } catch (error) {
                reject()
            }
        })
    })
}

上一篇:正则登录密码规则复杂度