我正在尝试将音频文件转换为Base64String,以上传到服务器。 出于某些原因,我想在手机上进行此操作,然后再上传。我在Expo工具包中使用了React Native。
我的文件结构如下:
let uriParts = uri.split('.');
let fileType = uriParts[uriParts.length - 1];
let formData = new FormData();
formData.append('file', {
uri,
name: `file.${fileType}`,
type: `audio/${fileType}`,
});
假设我们有uri,它是一个.wav音频文件
我能够使用multer进行繁重的操作,使用NodeJS服务器进行此转换。
它将为路由提供一个缓冲区,然后我可以将缓冲区转换为base64字符串,然后将其发送到另一台服务器以处理该缓冲区。
有什么想法如何在React Native上或纯粹在前端完成此工作吗?
谢谢!
答案 0 :(得分:0)
您可以使用 FileReader 类。
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
console.log(reader.result);
};
reader.onerror = function (error) {
console.log('Error: ', error);
};
或者您可以作为 blob 发送(不是base64)。 使用https://github.com/wkh237/react-native-fetch-blob库