Android: реализация VoIP-программы

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

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

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

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

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

большое спасибо

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

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

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

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

Intereting Posts