React-Native отправляет записанное аудио на AWS S3 - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь сделать мгновенный чат со звуковыми записями в React-Native.У меня проблемы с отправкой записанного звука на S3.

Я использую React-Native-Audio для записи входного звука, React-Native-Sound для воспроизведения записанного звука и React-Native-aws3 для отправки файловв AWS.

Я могу воспроизвести записанный локальный звук.Также я могу отправлять фотографии на S3.Однако, когда я пытаюсь отправить аудио на AWS S3 и воспроизводить аудио по URL-адресу, указанному на S3, звук не работает.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 Ответ

0 голосов
/ 13 июня 2018

Действительно глупая синтаксическая ошибка.

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

Просто нужно добавить свойство uri.

Это работает сейчас!

...