|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|||||||||||
Как одновременно воспроизвести аудио-потоки от разных участников чата?08.12.2018, 00:07. Показов 6654. Ответов 30
Метки нет (Все метки)
Пишу аудио-чат конференцию.
Передаю аудио-поток с микрофона клиента на сервер, с сервера отправляю его всем участникам конференции по TCP. Для записи и воспроизведения звука использую библиотеку Naudio, готов рассмотреть другие реализации. Когда говорит 1 участник конференции, а другие слушают - всё ок. Когда говорят одновременно 2 или более участников, начинаются проблемы. Как можно одновременно воспроизвести аудио-потоки от разных участников?
Проблема в том, что буфер забивается аудио-данными от разных участников конференции и эти данные не успевают воспроизводится. В случае когда говорит 1 участник, то данные успевают воспроизводится.
0
|
|||||||||||
| 08.12.2018, 00:07 | |
|
Ответы с готовыми решениями:
30
Как записать аудио с микрофона и воспроизвести? Как воспроизвести аудио и видео в приложении Как воспроизвести аудио файлы размером 1 килобайт? |
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|
| 14.12.2018, 09:46 [ТС] | |
|
В клиенте проще, там всего 1 принимающий поток
Вот реализация через mixingWaveProvider32. Не знаю насколько стабильно она работать правда будет. До этого делал через создание нового экземпляра WaveOut и буфера для него, по аналогичному принципу. Проблем с такой реализацией не было, но она наверняка неправильная. Но мне вообще не нравится идея посылать какие-то примечания в массиве с аудиоданными, мне кажется это очень плохо. А на сервере сделать микширование что-то не получается( P.s. Микширование сделано в клиенте в классе Client, в методе Listening(). Задействован класс с микшированием VoiceMix.
0
|
|
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|
| 14.12.2018, 12:38 [ТС] | |
|
nicolas2008, есть идеи как сделать такое на сервере?)
0
|
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|||
| 15.12.2018, 02:12 | |||
Сообщение было отмечено Nalik как решение
Решение![]() Да, сделал микс на сервере, но по другому. Чтение из буфера со скоростью воспроизведения плюс таймаут на звуковые данные. client_server_13_12_2018_15_20_fixed.rar
0
|
|||
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|||
| 16.12.2018, 12:41 [ТС] | |||
0
|
|||
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 16.12.2018, 19:53 | |
|
Там еще упростить можно (и нужно).
Вместо того что я нагородил с таймаут буфером, просто включить режим циклического буфера в BufferedWaveProvider
0
|
|
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|
| 16.12.2018, 20:19 [ТС] | |
|
nicolas2008, вы же понимаете, что моих знаний библиотеки пока что не хватит для этого)) мне потом ещё с кодеками разбираться нужно будет, чтобы сжимать данные перед отправкой, но это уже другая история)
0
|
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 16.12.2018, 21:23 | |
|
Сорри, это я сложно написал.
Реализуется установкой свойства DiscardOnBufferOverflow = true
0
|
|
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|
| 16.12.2018, 21:47 [ТС] | |
|
А какие функции при этом нужно убрать из за неактуальности?
0
|
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 16.12.2018, 23:19 | |
|
Убрать класс InputState и все что с ним связано
0
|
|
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
||
| 17.12.2018, 08:55 [ТС] | ||
|
Понял, спасибо)
Добавлено через 9 часов 34 минуты Еще раз большое спасибо за помощь!
1
|
||
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 18.12.2018, 02:47 | |
|
1
|
|
| 18.12.2018, 02:47 | |
|
Как воспроизвести любой аудио-файл по нажатию на кнопку? Как одновременно воспроизвести несколько звуков?
Как воспроизвести два wav-файла одновременно (второй с некоторой задержкой)? Как запустить потоки одновременно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости.
Решение:
Создан документ со следующими. . .
|
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово.
Решение:
Создан документ с единственным. . .
|
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить сумму и количество положительных элементов массива, расположенных в четных строках.
Решение:
Создан документ с. . .
|
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности.
. . .
|
|
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные.
. . .
|
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Написать программу вычисления стоимости некоторого количества (по весу) яблок.
Решение:
Создан документ, с табличной частью. . .
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|