最近有个需求,需要把服务器上的 GIF 图片保存到系统相册中,但是我在尝试了几种方式后,发现保存后的 GIF 图片都变成了静态图片。
我新建了一个新的 RN 项目来模拟这样的情况
"dependencies": {
"@react-native-community/cameraroll": "^1.7.2",
"react": "16.11.0",
"react-native": "0.62.2",
"react-native-fs": "^2.16.6",
"rn-fetch-blob": "^0.12.0"
}
尝试过以下几种方式
const img = 'https://i.loli.net/2020/05/28/YKaCdO1pexuThbN.gif'
CameraRoll.saveToCameraRoll(img);
const img = 'https://i.loli.net/2020/05/28/YKaCdO1pexuThbN.gif'
const storeLocation = `${RNFS.TemporaryDirectoryPath}`;
const pathName = `${new Date().getTime()}_babycam_moji.gif`;
const downloadPath = `${storeLocation}${pathName}`;
const ret = RNFS.downloadFile({
fromUrl: img,
toFile: downloadPath,
});
ret.promise.then((res) => {
console.log('res', res);
if (res && res.statusCode === 200) {
const promise = CameraRoll.saveToCameraRoll(
`file://${downloadPath}`,
);
promise.then(() => {});
} else {
}
});
RNFetchBlob.config({appendExt: 'gif', fileCache: true})
.fetch('GET', img)
.then((res) => {
console.log('res', res.path());
CameraRoll.saveToCameraRoll(res.path());
});
以上的方法我都尝试过,但保存后的 GIF 图片还是变成静态图片。
1
tanranran 2020-05-28 17:42:16 +08:00
试试用三方软件查看,看看能不能播放
|
3
liutao1998 2021-12-21 10:21:14 +08:00
现在有个 pr 修复了,但是还没 merge 过去
|