js通过视频链接获取视频时长
这个函数用提供的URL创建一个新的Video元素,并在loadedmetadata事件被触发时解析一个带有视频持续时间的Promise。它还处理可能发生的任何错误。
注意,Video元素的duration属性是以秒为单位的,因此如果需要,您可能希望将其转换为更易于阅读的格式。
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组件,适当参考哈:
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();
});
});
};
到此这篇关于JS如何通过视频链接获取视频时长的文章就介绍到这了,更多相关js获取视频时长内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END











暂无评论内容