JS如何通過視頻鏈接獲取視頻時長
更新時間:2024年06月21日 10:32:16 作者:Eli-sun
這篇文章主要介紹了JS如何通過視頻鏈接獲取視頻時長,這個函數(shù)用提供的URL創(chuàng)建一個新的Video元素,并在loadedmetadata事件被觸發(fā)時解析一個帶有視頻持續(xù)時間的Promise,感興趣的朋友跟隨小編一起看看吧
js通過視頻鏈接獲取視頻時長
這個函數(shù)用提供的URL創(chuàng)建一個新的Video元素,并在loadedmetadata事件被觸發(fā)時解析一個帶有視頻持續(xù)時間的Promise。它還處理可能發(fā)生的任何錯誤。
注意,Video元素的duration屬性是以秒為單位的,因此如果需要,您可能希望將其轉(zhuǎn)換為更易于閱讀的格式。
function getVideoDuration(url) { return new Promise((resolve, reject) => { const video = document.createElement('video'); video.src = url; video.addEventListener('loadedmetadata', () => { resolve(video.duration); video.remove(); }); video.addEventListener('error', () => { resolve(null); video.remove(); }); document.body.appendChild(video); }); } // Example usage const videoUrl = 'https://www.example.com/video.mp4'; getVideoDuration(videoUrl) .then((duration) => { if (duration) { console.log('Video duration:', duration); } else { console.log('Failed to get video duration'); } });
JS--獲取上傳視頻文件的時長(秒)
代碼基于ng-zorro組件,適當(dāng)參考哈:
beforeVideoUpload = (file: File) => { return new Observable((observer: Observer<boolean>) => { // 判斷文件類型 const isVideoFile = /video\/(wmv|asf|asx|rm|rmvb|mpg|mpeg|mpe|3gp|mov|mp4|m4v|avi|dat|mkv|flv|vob)$/.test(file.type); console.log('是否為視頻類型:', isVideoFile); // 獲取視頻時長 const url = URL.createObjectURL(file); const audioElement = new Audio(url); let videoSeconds; audioElement.addEventListener('loadedmetadata', (_event) => { videoSeconds = Math.floor(audioElement.duration); console.log('視頻時長為', videoSeconds); observer.next(true); observer.complete(); }); }); };
到此這篇關(guān)于JS如何通過視頻鏈接獲取視頻時長的文章就介紹到這了,更多相關(guān)js獲取視頻時長內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!