Сохранение WAV-файла в Android (java) из mi c, подключенного к Arduino - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь сохранить файл .wav из данных, отправленных mi c, подключенным к Arduino. Данные передаются по Bluetooth, и я сохраняю их как целочисленные значения на конце Android (сейчас много шума, но значения колеблются в диапазоне 200-600).

Все это нормально ,

Я застрял в том, как сохранить его как файл .wav. Примеры, которые я видел, читают аудиоданные из AudioRecord в буфер byte [] и затем записывают его в FileOutputStream.

Примерно так:

AudioRecord audioRecord = ....;
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[BUFFER_SIZE];
int read;
while((read= audioRecord.read(buffer, 0, buffer.length)) != -1) {
       out.write(buffer, 0, read);
}

Я пытался сделать это, но я не использую AudioRecord, потому что у меня уже есть внешний mi c, отправляющий мне значения через Bluetooth. Мои значения - это числа (в настоящее время они анализируются как целые числа, но также могут быть сохранены как двойные), поэтому я не понимаю, как их сохранить, как в примере кода выше. Я знаю из документов, что Arduino имеет 10-битный аналого-цифровой преобразователь, поэтому он посылает значения в диапазоне 0-1023 для контакта, подключенного к mi c.

Я посмотрел на создание заголовка wav , но возможно ли сохранить реальные аудиоданные только из тех значений, которые у меня есть из mi c? Я что-то пропустил? Помня о том, что я работаю только на конце Android (мой партнер работает со стороной Arduino, поэтому я мало что знаю об этом)

...