Удаленная звуковая система на окнах - PullRequest
2 голосов
/ 26 мая 2011

Наше требование заключается в разработке удаленной звуковой системы, которая должна поддерживать все ОС Windows, начиная с WindowsXP и далее.Это что-то вроде http://www.elusiva.com/products/RemoteSound/

Я бы хотел более подробно описать здесь функциональные возможности ...

У Microsoft есть 3 различных варианта RDP с использованием виртуального канала

  1. Воспроизвести на этом компьютере

  2. Не воспроизводить

  3. Воспроизвести в удаленной системе

Для этого microft использует RdpendP.dll и виртуальный канал для управления этими тремя разностями.параметры ..

В нашем случае мы имеем дело только с Microsoft, когда один из пользователей выбирает параметр «Воспроизведение в удаленной системе», который должен воспроизводиться в локальной системе, а не в удаленной системе… с использованием нашего собственного виртуального канала, который мы зарегистрировали.Во-вторых, когда пользователь выбирает параметр «Воспроизвести на этом компьютере», который должен воспроизводиться на удаленной системе, а не в локальной системе с низкой задержкой ...

Наш подход:

Мы только что создали один виртуальный клиент DLLи зарегистрированы в (HCURRENT_USER / Программное обеспечение / Microsoft / Клиент сервера терминалов / По умолчанию / Addin). Теперь мы можем создать виртуальный канал с сервером терминалов.

Проблемы:

  1. Первая проблема заключается в том, как перенаправить звук с сервера терминалов на клиент (чтобы при воспроизведении одного медиапроигрывателя на сервере терминалов он воспроизводился на клиентской системе). Мы пытались с помощью WASAPIS захватывать звук с динамика оконечного устройства терминального сервера и использоватьWTSVirtualWrite для записи аудиоданных в виртуальный канал, а затем на стороне клиента мы используем его для рендеринга, используя метод getbuffer для записи клиентского конечного устройства, но я думаю, что это очень плохой подход, и наступает огромная задержка.Итак, что мы думаем здесь, вместо того, чтобы захватывать и рендерить, если мы перенаправим звук, который воспроизводится на стороне сервера терминалов, на клиентское аудиоустройство, что будет лучшим подходом, но как сделать эти реализации, используя виртуальный канал и API сервера терминалов или любые другие API Windows.. Какие изменения в реестре необходимо сделать для этого…

  2. Вторая проблема заключается в том, как добавить фиктивный значок динамика в динамик устройства микширования громкости (одно поле со списком появится на динамике устройства,здесь у нас будет два значка динамика с их свойством, один - HDRealtalk как поддерживаемый, а второй - наш динамик только с общим свойством динамика)

Примечание: здесь Вместо записи виртуальногоАудио драйвер или наш собственный audiodrv, как этого добиться.

  1. Третья проблема заключается в том, как поддерживать наш собственный кодек (например, verbois) ... (Здесь мы создали один файл .acm, но какчтобы поддержать это, мы прошли через различные функции ACM, такие как ACMDriverAdd, ACMDrvClose,ACMOpen, но мы не имеем идеи это реализовать) ...

  2. Четвертая проблема заключается в том, как выполнить захват и рендеринг с микрофона на клиентскую систему (как захват с микрофона сервера терминалов на локальныйзахват устройства, а также воспроизведение там) ...

Наше требование таково, как будто оно должно поддерживаться всеми ОС Windows, начиная с Window XP и далее.

1 Ответ

0 голосов
/ 07 сентября 2011

Вы всегда можете использовать Icecast для этого.Просто нужно немного сценариев и edcast, и вы должны быть милыми.

Другие варианты включают Mumble.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...