最近做即时通信,上传音视频需要顺便上传音视频播放时长,实测方法可以使用,目前来看读取进度还是比较慢的;条件允许的情况下建议通过媒体服务器二次转码后获取;
handlePlaybackDuration(file){
return new Promise((resolve, reject) => {
const url = URL.createObjectURL(file);
const tmpAudio = new Audio(url);
/* onloadedmetadata:
视频的元数据加载到页面中时触发。
数据包括视频的长度、宽度、高度、帧速率、音频和视频编解码器等信息
*/
tmpAudio.onloadedmetadata = function () { //
resolve(tmpAudio.duration);
};
tmpAudio.onerror = function() { // 如果失败了
console.log('onerror');
resolve(0);
};
})
}