uniapp中小程序保存视频到相册怎么弄
时间: 2024-10-05 20:03:28 浏览: 36
在uni-app框架下,小程序想要将用户录制的视频保存到本地相册,可以按照以下步骤操作:
1. 首先,确保已导入所需的权限,通过`permission` API请求用户的媒体文件访问权限,如录像权限:
```javascript
wx.requestAuth({
scope: 'scope.video',
success() {
// 用户授权成功,继续保存视频
},
fail() {
// 用户拒绝授权
}
});
```
2. 使用`wx.chooseVideo`方法让用户选择或录制视频:
```javascript
wx.chooseVideo({
count: 1, // 可选,限制获取视频的数量,默认值1
sizeType: ['original', 'compressed'], // 可选,返回原图或压缩后的图
sourceType: ['camera', 'album'], // 可选,来源类型,'camera'表示摄像头,'album'表示相册
success(res) {
if (res.tempVideoPath) { // 如果有临时视频路径,说明用户选择了录像
// 对视频进行处理,例如压缩、裁剪等,然后保存
saveVideoToAlbum(res.tempVideoPath);
} else {
console.log('用户从相册选取了视频');
const videoPath = res.videoPath; // 如果是从相册选取的,则直接得到videoPath
saveVideoToAlbum(videoPath);
}
},
});
```
3. 实现`saveVideoToAlbum`函数来将视频保存到相册:
```javascript
async function saveVideoToAlbum(videoPath) {
try {
await wx.saveVideoToPhotosAlbum({
filePath: videoPath,
success() {
wx.showToast({
title: '视频已保存到相册',
icon: 'success',
duration: 1500
});
},
fail(err) {
console.error('保存视频失败:', err);
}
});
} catch (e) {
console.error('保存视频异常:', e);
}
}
```
4. 为了处理用户取消选择的情况,可以在`fail`回调里检查是否是用户取消操作:
```javascript
chooseVideo.fail(e => {
if (e.errCode === 61480) {
wx.showToast({
title: '用户取消了操作',
icon: 'none'
});
} else {
console.error('其他错误:', e);
}
});
```
阅读全文