Как эмулировать / заменить / повторно включить классические элементы управления (или команды) Sound Mixer в Windows Vista?

У меня есть проблема (и она у меня есть уже некоторое время) - новый стек звукового микшера в Vista содержит новые интересные вещи, но также заново изобретает колесо. Многие приложения, которые раньше использовали Volume Mixer в системе Windows для микширования разных голосовых выходов в один вход (например, Wave-out + Line-in -> Stereo Mix), с тех пор перестали работать. Ярким примером такого поведения является плагин Shoutcast DSP (может быть полезен для тестирования решения).

Как я могу повторно включить элементы управления XP-микшером или, возможно, каким-то образом имитировать это поведение, чтобы программа (SC DSP) могла правильно управлять громкостью воспроизведения микрофона / линейного входа вместе с громкостью воспроизведения волнового выхода?

Я бы подумал, что имитирую программу, подключенную к микшеру Vista для волнового и линейного выхода (или громкости динамика микрофона - все воспроизведение, показанное как отдельные настраиваемые "программы", чтобы микшер Vista мог обращаться к нему) и «подключить» его к системе при некоторой эмуляции, представляющей себя как старый интерфейс управления микшером громкости для программы, но я, честно говоря, понятия не имею, как это сделать.

Уточняю: это не мой компьютер (это ноутбук HP Pavilion). Проблема, по-видимому, существует в основном из-за того, что микшер Vista управляет отдельными программами, а не отдельными входами / выходами. Оборудование полностью способно делать то, что необходимо при использовании Windows XP. Мне хорошо известно, что это проблема драйвера, но драйвер просто подготовлен к тому, что Vista представляет программисту через интерфейсы. Устройство микшера - как оно выглядит в операционной системе, как бы оно ни выглядело в программном обеспечении - основано на API микшера для управления звуком Windows.

Выполните поиск с помощью Google в Vista и линейного регулятора громкости воспроизведения, чтобы получить дополнительную информацию о проблеме (и об огромном количестве пользователей, которых она затронула). Конечно, переписывание подключаемого модуля Shoutcast Source DSP для WinAMP поможет, но вряд ли это произойдет ...


person Egon_Freeman    schedule 16.09.2008    source источник


Ответы (4)


Управление уровнями громкости звуковых карт с отдельными уровнями ввода / вывода в микшере Windows Vista возможно с помощью audio API EndPoint

Это должно позволить вам регулировать основную громкость, а также громкость и подключенных аудиовходов. Одна морщина в том, что когда вы перечисляете конечные точки, если к вашей звуковой карте не подключен микрофон, то ничего не будет перечислено. Это означает, что вам нужно изменить свое приложение, чтобы оно реагировало на события «микрофон подключен» и уведомлял пользователя соответствующим образом.

Другой вариант - погрузиться в Microsoft Core Audio и получить доступ к WaveRT водитель напрямую. Это намного больше, чем использование API WASAPI / Endpoint, но даст вам максимальный контроль над доступом к входам / выходам звуковой карты.

person Nick Haddad    schedule 26.09.2008

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

Если драйвер Vista не имеет определенных элементов управления, то, скорее всего, это недостаток этого драйвера, а не Vista.

(Сообщите нам, какую звуковую карту / устройство вы используете.)

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

person CL.    schedule 16.09.2008

Если вы отметите свое приложение как работающее в режиме совместимости с Windows XP, все старые элементы управления и поведение вернутся.

person ReinstateMonica Larry Osterman    schedule 26.07.2009

Если вы отметите свое приложение как работающее в режиме совместимости с Windows XP, все старые элементы управления и поведение вернутся.

Это правда, но в Vista SP1 патч KB957388, включенный в SP2, и с некоторыми драйверами звуковой карты, функции старого API микшера (winmm.dll) могут зависать, когда приложение находится в режиме совместимости с XP. В частности, на некоторых компьютерах не работают микшерGetNumDevs и, реже, микшерOpen.

У меня есть отчеты от 5 пользователей Vista из примерно 200 пользователей Vista, в которых мое приложение зависает при запуске, и я отследил это до зависания этих функций.

Я хотел бы сообщить об этом в Microsoft, но нигде не могу это сделать.

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

У меня нет времени напрямую работать с низкоуровневыми API-функциями. Я полагаюсь на компоненты высокого уровня и не могу найти ни одного нового аудио API для моей системы разработки (Delphi).

Я был бы заинтересован в том, чтобы заплатить кому-нибудь, кто напишет для меня DLL !!! электронная почта ross att stationplaylist dott com

person Community    schedule 19.08.2009