使用 wx.downloadFile()下载完视频后,使用wx.saveVideoToPhotosAlbum()无法在苹果手机内进行保存,已测试苹果手机端绝大多数型号,在 android 和macos ,window上都可以完美走通,这是微信和苹果权限的问题吗?
时间: 2024-04-03 09:37:26 浏览: 116
是的,这可能是微信和苹果权限的问题。在iOS环境下,由于苹果的限制,无法直接将视频保存到相册中。需要经过一定的处理才能将视频保存到相册中。
你可以尝试使用以下方法将视频保存到相册中:
1. 将下载的视频转换为base64格式。
2. 将base64格式的视频转换为NSData格式。
3. 使用PHPhotoLibrary将NSData保存到相册中。
具体代码实现可以参考以下示例:
```javascript
wx.downloadFile({
url: 'https://example.com/video.mp4',
success: function(res) {
if (res.statusCode === 200) {
// 将视频转换为base64格式
wx.getFileSystemManager().readFile({
filePath: res.tempFilePath,
encoding: 'base64',
success: function(res) {
var base64Data = res.data;
// 将base64格式的视频转换为NSData格式
var videoData = NSData.alloc().initWithBase64EncodedStringOptions(base64Data, 0);
// 使用PHPhotoLibrary将NSData保存到相册中
PHPhotoLibrary.sharedPhotoLibrary().performChangesAndWaitError(function() {
var request = PHAssetCreationRequest.creationRequestForAsset().addResourceWithTypeDataOptions(videoData, PHAssetResourceType.Video, null);
request.creationDate = new Date();
}, null);
console.log('视频保存成功');
},
fail: function(res) {
console.log('视频转换失败');
}
});
}
},
fail: function(res) {
console.log('视频下载失败');
}
});
```
注意,以上代码需要在iOS环境下测试,并且需要在app.json文件中添加NSPhotoLibraryAddUsageDescription权限申请。
阅读全文