微信小程序下载 base64 视频文件到本地相册
2023-12-13 05:46:33
微信小程序下载 base64 视频文件到本地相册
问题描述:
后端传过来一个视频的 base64 编码,前端通过一个按钮点击来下载视频到本地相册。
解决代码:
// 点击下载按钮对应的方法
async uploadVideo() {
uni.showLoading({
title: '正在下载,请稍后...',
mask: false
});
const getVideoUrl = await new Promise((resolve) => {
// this.baseCode 为 视频编码
// 注意的是这里的编码不需要携带 data:video/mp4;base64 前缀
// 如果携带了,在调用writeFileSync会报 writeFileSync:fail base64 encode error
const base64Video = this.baseCode.replace(/[\r\n]/g, '')
// 进行本地临时存储
const fs = uni.getFileSystemManager();
const filePath = `${wx.env.USER_DATA_PATH}/video${new Date().getTime()}.mp4`;
fs.writeFileSync(filePath, base64Video, 'base64');
this.videoUrl = filePath
resolve(true)
})
if (getVideoUrl) {
wx.getSetting({
withSubscriptions: true,
success: res => {
// 判断是否有相册的写入权限
if (res.authSetting['scope.writePhotosAlbum']) {
// 写入文件
uni.saveVideoToPhotosAlbum({
filePath: this.videoUrl,
success: () => {
uni.hideLoading()
uni.showToast({
title: '保存成功,请到相册查看!',
icon: 'success',
});
},
fail: (error) => {
uni.hideLoading()
uni.showToast({
title: '保存失败',
icon: 'none',
});
console.error('保存视频失败:', error);
},
});
} else {
// 没有权限,调用开启权限的方法,这里省略。
uni.hideLoading()
this.openSaveSetting()
}
}
})
}
},
文章来源:https://blog.csdn.net/qq_38499019/article/details/134940861
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!