CallBack для записанного блока в MediaRecorder - PullRequest
0 голосов
/ 14 декабря 2010

Я пытаюсь записать голос с микрофона с помощью класса Media Recorder.в упомянутом классе у нас есть только метод setOutputFile для установки выходного файла, но мне нужно получить буфер для некоторого определенного записанного голоса, я имею в виду, что мне нужно что-то вроде метода CallBack, который возвращает блок записанного байта в то время, и ясобираюсь отправить упомянутые байты на другое устройство ...

На самом деле я хочу транслировать и отправлять записанный голос через сокет на другое устройство одновременно, не сохраняя записанный голос, а затем прочитать файл и отправить его из-заэто приводит к неожиданной задержке ...

1 Ответ

1 голос
/ 25 января 2011

Реза,

Это можно сделать довольно легко. Все, что вам нужно сделать, это установить сокет, из этого сокета вы создадите ParcelFileDescriptor, а затем установите этот файловый дескриптор в setOutputFile. Это настроит потоковую часть, но потом у вас будут проблемы с форматированием файла. Это связано с тем, что MediaRecorder резервирует пространство заголовка файла, но записывает его только после завершения потока. Чтобы иметь функциональный файл на стороне сервера, вам придется проанализировать заголовок и записать его в начало файла (или буфера).

Удачи, B-Rad

...