Я просто хочу записывать звук на своем Android и передавать его через сокет на другой сервер. Все работает как надо, за исключением того, что файл не читается на другом конце.
После некоторого тестирования и сравнения файлов оказалось, что при записи аудиоданных в файл MediaRecorder в какой-то момент обновит заголовок, возможно, по завершении записи. Я не знаю, указывает ли это кодек или формат. Проблема становится очевидной при использовании FileDescriptor для записи в сокет. Очевидно, что обновление заголовка не может произойти после того, как данные будут записаны в сокет.
Я прочитал много других сообщений о потоковой передаче аудио/видео через сокет и не встречал никого, говорящего об этой проблеме. Может быть, мне нужно изменить формат или кодек на что-то, что не требует возврата и обновления заголовка?
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);