Android: реализация программы VoIP - PullRequest
4 голосов
/ 14 ноября 2010

У меня есть несколько вопросов о дизайне, которые я хочу обсудить с людьми, заинтересованными в помощи мне.Я планирую разработать простую программу VoIP, которая позволит двум телефонам Android в одной сети использовать VoIP.Моя цель - просто захватывать звук, отправлять данные по протоколу UDP, получать данные UDP и воспроизводить звук.

В настоящее время у меня есть два потока: один захватывает микрофон и отправляет данные;другой получает байты и воспроизводит их.

Я начал реализовывать это, используя MediaPlayer и MediaRecorder.Возникла проблема, как записать и воспроизвести звук?Таким образом, я хотел бы знать, нужно ли мне использовать файл, хотя он кажется медленным, или есть ли возможность автоматически отправлять запись на мой UDP-сокет, пожалуйста?

По существу, мне интереснонужно записать в файл, чтобы потом воспроизвести его, или если бы я мог просто пропустить сокет (для записи и воспроизведения).

У кого-нибудь есть предложения, пожалуйста?

Спасиботы очень

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Не используйте эти классы для потоковой передачи аудио - используйте AudioTrack и AudioRecord.

Они предоставляют функции, необходимые для воспроизведения и записи необработанных аудиоданных, не имея дело с FD.

При записи кадра (байта [] или короткого []) оберните его UDP-пакетом. При получении пакета UDP распакуйте соответствующий байт [] или короткий [] и воспроизведите его.

1 голос
/ 14 ноября 2010

MediaRecorder нужен FD, поэтому вы также можете использовать сокеты. Я не вижу никаких проблем с этим. Все зависит от того, как вы будете проектировать свою систему.

...