我想从Cordova Media Capture的captureVideo()方法获得的视频文件中获取base64。我可以使用resolveLocalFilesystemUrl()方法获取文件,但当我尝试使用FileReader读取该文件时,没有回调事件,我也没有得到任何错误.我发现从这个link从媒体捕获获得的文件在阅读有问题.我试图阅读文件使用文件插件的readAsDataURL()方法,但没有成功。我也试图创建一个objectURL使用URL。ObjectURL(file)方法,但得到错误。有没有其他方法来获得base64或缩略图?
convertMediaFileToBlob(path: string){
this.file.resolveLocalFilesystemUrl(path)
.then((fileEntry:any) => {
fileEntry.file((file:any)=>{
let reader = new FileReader();
reader.onloadend = () => {
console.log('onloadend: ',reader.result)
};
reader.onerror = (error) => {
console.log('onerror error: ',error)
};
reader.onabort = () => {
console.log('onabort')
};
reader.readAsDataURL(myfile);
})
})
.catch((e:any) => {
console.log('err: ',e)
});
}
async recordVideo(){
let options: CaptureVideoOptions = { limit: 1 }
this.mediaCapture.captureVideo(options)
.then(
(data: any) => {
const path = data[0]?.fullPath
this.convertMediaFileToBlob(path)
},
(err: CaptureError) => console.error(err)
);
}
1条答案
按热度按时间x6492ojm1#
不确定,但如果你使用cordovas
readDataAsURL
而不是FileReader,这段代码将文件作为数据URL读取,这将给予文件的Base64编码