![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Пишу голосовой чат,работает 1 на 1, но хочу сделать конференсвязь, вопросы такие:
1. Как сделать что бы при конференции звуковой поток приходил всем , 2. Сделал для каждого клинта progressBar ,как узнать от кого именно приходят звуковые данные. если в конференцсвязи будут участвовать 5-10 человек. Пытаюсь пока так, получаю буфер(байтов) звуковых данных размером 4096. Разбиваю поток по 120 байт, в начало каждого пакета добовляю свои данные(4-байта)- 1_байт -начало пакета 2_байт-что за пакет(1-звуковой,2-текстовый) 3_байт - ID клинта кто передал пакет 4_байт - номер пакета(0 до 255) что бы складывать пакеты друг за другом Что у нас получаеться ,полных созданых пакетов получаеться 34, 16 байт остаток ,его сохраняем для передачи следующего буфера . 34X120=4080 байт , а унас 4096, 4096-4080=16 каждый пакет у нас получился 124 байта. При приеме ищем начало пакета проверяем кому относиться пакет и отправляем тому окну кто говорить в конференцсвязи. Вся проблема в том что работает но звук искаженный ,где то с байтами на путал. Может кто знает или подскажет где посмотреть, как можно сделать, что бы каждый поток клиента шел именно в свой Stream . текстовый чат понятно чо можно узнать по нику или еще как, просто если прогрессбар не ставить кадому клинту в конференцсвязи ,не понятно кто говорит ,не определить визуально. Может есть готовые функции для разделения потока и складывания их на клиенте. Спасибо. Последний раз редактировалось tolyan249, 25.03.2015 в 19:02. |