Привет всем, не могли бы вы помочь мне. Я пишу код Java для отправки строкового сообщения между клиентом и сервером с использованием сокета udp. но я хочу отправить голос в реальном времени, поэтому не могли бы вы дать несколько заметок, чтобы сделать это
отправить голос в реальном времени с помощью udp
Ответы (3)
Я могу немного указать вам путь, вы, вероятно, захотите использовать транспортный протокол реального времени (RTP), который более или менее является стандартом для отправки аудио или видео в режиме реального времени по сети. Однако реализация не является прямой, и для реализации вам следует использовать вспомогательную библиотеку, такую как jlibrtp. В Java Media Framework (JMF) также есть пакетизатор RTP, но вы не хотите туда идти....
UDP не имеет гарантии качества обслуживания, поэтому при отправке пакетов данных вам нужно будет добавить к вашим данным какой-то порядковый номер, чтобы определить, как собрать данные обратно. Например, вы можете отправить с сервера 3 пакета дейтаграмм по порядку, но клиент может получить их в другом порядке (2,1,3). Или он может вообще не получить ни одного из них, и в этом случае вы либо захотите, чтобы он возмутился (сомнительно), либо просто проигнорируете его и продолжите через некоторое время.
Изучите протокол реального времени RFC3550 (http://en.wikipedia.org/wiki/Real-time_Transport_Protocol) в качестве транспорта по UDP. RTCP как контроль над TCP.