首页 > 解决方案 > React Native:从 CameraRoll.saveToCameraRoll 解码图像数据时出错

问题描述

我收到一个警告信号,说

Possible: Unhandled Promise Rejection: Error: Error decoding image data

这是我的代码。

for (let media of mediaArray) {   
  await CameraRoll.saveToCameraRoll(
    'https://someurl.mp4',
  ); 
}

我能够使它与具有 .jpg 的 url 一起使用,但是当我尝试使用 .mp4 url​​ 时,它不起作用。我知道网址是正确的,但不知道为什么我会得到这个?如果我必须同时保存照片或视频,我是否遗漏了什么?

标签: iosreactjsreact-nativereact-native-ioscamera-roll

解决方案


对于对此感兴趣的任何人,我发现 CameraRoll 不支持来自远程源的视频文件。

我所做的就是rn-fetch-blog将文件保存到计算机中,然后最终使用CameraRoll作为补充。

此片段可让您浏览一系列照片和视频

selectedMedia.map(index => {
  let extension = cleanUrl.split('.').pop();
  RNFetchBlob.config({
    fileCache: true,
    appendExt: extension,
  })
    .fetch('GET', index.mediaUrl)
    .then(res => {
      // the temp file path
      CameraRoll.saveToCameraRoll(res.path());
    });
});

推荐阅读