未处理的承诺拒绝:TypeError:网络请求失败 - 在 React Native / Expo 中将 Base64(视频/mp4)转换为 Blob
Posted
技术标签:
【中文标题】未处理的承诺拒绝:TypeError:网络请求失败 - 在 React Native / Expo 中将 Base64(视频/mp4)转换为 Blob【英文标题】:Unhandled promise rejection: TypeError: Network request failed - Converting Base64 (video/mp4) to Blob in React Native / Expo 【发布时间】:2021-09-24 10:04:07 【问题描述】:我正在尝试从我的手机中获取一个文件以将其转换为 javascript File 对象,但要做到这一点,我首先需要它是一个 blob。到目前为止,这是我的代码:
import * as FS from 'expo-file-system';
let base64 = await FS.readAsStringAsync('file:///storage/emulated/0/DCIM/b914bf57-4899-45d1-a020-fc2b274b4640.mp4', encoding: FS.EncodingType.Base64);
let base64Response = await fetch(`data:video/mp4;base64,$base64`);
let blob = await base64Response.blob();
let file = new File([blob], "video.mp4", type: "video/mp4");
我怎样才能完成这项工作,或者有更简单的方法吗?我找不到任何适合我的工作示例。在第一行 Fetch() 引发异常。
【问题讨论】:
【参考方案1】:使用 DocumentPicker 找到了解决方案,这是我的代码:
const type, uri = await DocumentPicker.getDocumentAsync(
copyToCacheDirectory: false,
type: 'video/mp4',
);
if (type === 'cancel')
return;
const fetchResponse = await fetch(uri);
const blob = await fetchResponse.blob();
file = new File([blob], "video.mp4", type: "video/mp4");
【讨论】:
以上是关于未处理的承诺拒绝:TypeError:网络请求失败 - 在 React Native / Expo 中将 Base64(视频/mp4)转换为 Blob的主要内容,如果未能解决你的问题,请参考以下文章
react-native 错误:[未处理的承诺拒绝:错误:获取 Expo 令牌时遇到错误:TypeError:网络请求失败。]
未处理的承诺拒绝:TypeError:网络请求失败 - 在 React Native / Expo 中将 Base64(视频/mp4)转换为 Blob
Axios 承诺处理 - 在 react-native 中获取“可能的未处理承诺拒绝 - 类型错误:网络请求失败”
可能的未处理承诺拒绝(id:0):TypeError:适配器不是函数。 (在“适配器(配置)”中,“适配器”未定义)?
反应本机获取多标记[未处理的承诺拒绝:TypeError:TypeError:未定义不是对象(评估'this.state.markers.map