React-Native 将录制的音频发送到 AWS S3

Posted

技术标签:

【中文标题】React-Native 将录制的音频发送到 AWS S3【英文标题】:React-Native send recorded audio to AWS S3 【发布时间】:2018-06-13 02:37:52 【问题描述】:

我正在尝试使用 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
    )

我认为问题在于没有获取实际的录音。

【问题讨论】:

【参考方案1】:

真是愚蠢的语法错误。

const file = 
  uri: audioPath,
  name: `$this.props.local.currentUserId$moment
         .utc()
         .format("YYYY-MM-DD-HH-mm-ss").aac`,
  type: `audio`
;

只需添加 uri 属性即可。

现在可以使用了!

对于那些想要查看示例的人: https://medium.com/@decentpianist/react-native-chat-with-image-and-audio-c09054ca2204

【讨论】:

以上是关于React-Native 将录制的音频发送到 AWS S3的主要内容,如果未能解决你的问题,请参考以下文章

sencha + Phone Gap中的相机应用程序[关闭]

AVAudioEngine 实时音频播放问题

NSInvalidArgumentException 使用 AFNetworking 将音频发送到服务器

音频单元 (v3) 可以替换应用间音频以将音频发送到主机应用程序吗?

如何在客户端合并两个音频文件。 (甚至可能是服务器端)

将新数据从Node REST API推送到React-Native