我正在尝试与React-Native中的录音进行即时聊天。我在将录制的音频发送到S3时遇到问题。
我使用React-Native-Audio录制声音输入,使用React-Native-Sound播放录制的音频,使用React-Native-aws3将文件发送到AWS。
我可以播放本地录制的音频。另外,我可以将图片发送到S3。但是,当我尝试将音频发送到AWS S3并播放来自S3给出的URL的音频时,音频不起作用。 S3将文件显示为0字节。
这是我的代码:
const file = {
audioPath, // `${AudioUtils.DocumentDirectoryPath}/test.aac`
name: `${this.props.local.currentUserId}${moment
.utc()
.format("YYYY-MM-DD-HH-mm-ss")}.aac`,
type: `audio/aac`
};
const options = {
keyPrefix: ****,
bucket: ****,
region: ****,
accessKey: ****,
secretKey: ****
};
RNS3.put(file, options)
.progress(event => {
console.log(`percent: ${event.percent}`);
})
.then(response => {
console.log(response, "response from rns3 audio");
if (response.status !== 201) {
console.error(response.body);
return;
}
// ... handling the response
})
我认为问题在于没有提取实际的录音。
答案 0 :(得分:1)
非常愚蠢的语法错误。
const file = {
uri: audioPath,
name: `${this.props.local.currentUserId}${moment
.utc()
.format("YYYY-MM-DD-HH-mm-ss")}.aac`,
type: `audio`
};
只需要添加uri属性。
它现在正在工作!
<强>更新强>:
对于那些希望了解如何向RN-Gifted-Chat添加音频的人,请参阅我的中篇文章:https://medium.com/@decentpianist/react-native-chat-with-image-and-audio-c09054ca2204