vue视频切片并读取base64

vue视频切片并读取base64,第1张

视频文件流切片
//file 是传入的整个文件流
spliceChunk(file) {
	var filesData = []
	var start = 0;
	var end;
	var filesize = file.size;
	//计算文件切片总数 ceil向上取整
	var totalPieces = Math.ceil(filesize / 2 * 1024 * 1024);
	while (start < filesize) {
		end = start + 2 * 1024 * 1024;
		if (end > filesize) {
			end = filesize;
		}
		var chunkFile = file.slice(start, end); //切割文件
		files = new window.File([chunkFile], file.name, {
			type: file.type
		})
		filesData.push(files)
		start = end;
	}
	//这里调用文件流转base64方法
	this.readFileAsBase64(filesData).then(res=>{
		console.log("result", res)
	})
	
},
切片文件流转base64
// 分片转成base64
	readFileAsBase64(fileData) {
		let base64Arr = []
		return new Promise((resolve,reject)=>{
			for (let i = 0; i < fileData.length; i++) {
				(function(file) {
					var reader = new FileReader();
					reader.onload = (file) => {
					//在这里判断是否为第一片 如果不是第一片将data:video/mp4;base64前缀换掉
						if (i) {
							let str = reader.result.replace("data:video/mp4;base64,", "");
							base64Arr.push({base64:str,id:i})
						} else{
							base64Arr.push({base64:reader.result,id:i})
						}
						resolve(base64Arr)
					}
					reader.readAsDataURL(file)
				})(fileData[i]);
			}
		})
	},

啊 我感觉写的可能有点复杂 ,但结果是对的!

后续还需要进行MD5加密上传,后边再写吧!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1320438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-11
下一篇 2022-06-11

发表评论

登录后才能评论

评论列表(0条)

保存