Я пытаюсь выполнить запись с микрофона в приложении для Android с помощью AudioRecorder, что-то вроде этого.Это работает очень хорошо, если я должен был сохранить файл локально, а затем воспроизвести его, но мне нужно отправить его, поэтому мне нужно работать с байтами:
private int sampleRate = 16000;
private int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO;
private int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
final byte[] buffer = new byte[minBufSize];
int minBufSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, channelConfig,audioFormat, minBufSize*10);
recorder.startRecording();
while(true) {
//reading data from MIC into buffer
minBufSize = recorder.read(buffer, 0, buffer.length);
Map<String, String> params = new HashMap<String, String>()
{{put("type", "recording");
put("data", new String(Base64.getEncoder().encode(buffer.toString().getBytes())));
}};
this.sendRequest(params); // send these through HTTP POST req
}
Хотя на принимающей стороне (сервер PHP) Я не знаю, как сохранить данные в любой воспроизводимый формат.Это неопределенная запись звука с микрофона.Любая помощь приветствуется!