Показать сообщение отдельно
  #1  
Старый 25.03.2015, 18:55
tolyan249 tolyan249 вне форума
Прохожий
 
Регистрация: 27.08.2012
Сообщения: 4
Репутация: 10
По умолчанию Вопрос по голосовому чату

Пишу голосовой чат,работает 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 .

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

Может есть готовые функции для разделения потока и складывания их на клиенте.

Спасибо.
Ответить с цитированием