微信小程序下载 base64 视频文件到本地相册
问题描述:
后端传过来一个视频的 base64 编码,前端通过一个按钮点击来下载视频到本地相册。文章来源:https://www.toymoban.com/news/detail-768911.html
解决代码:文章来源地址https://www.toymoban.com/news/detail-768911.html
// 点击下载按钮对应的方法
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()
}
}
})
}
},
到了这里,关于微信小程序下载 base64 视频文件到本地相册的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!