¿Cómo emular/reemplazar/volver a habilitar los controles (o comandos) clásicos del Mezclador de sonido en Windows Vista?

StackOverflow https://stackoverflow.com/questions/71198

Pregunta

Tengo un problema (y lo he tenido desde hace algún tiempo): la nueva pila de mezcladores de sonido en Vista presenta nuevas cosas interesantes, pero también reinventa la rueda.Muchas aplicaciones que solían usar Volume Mixer en un sistema Windows para mezclar diferentes salidas de voz en una entrada (por ejemplo, Wave-out + Line-in --> Stereo Mix) dejaron de funcionar desde entonces.El mejor ejemplo de este comportamiento es el complemento Shoutcast DSP (podría resultar útil para probar soluciones).

¿Cómo puedo volver a habilitar los controles del mezclador XP, o tal vez emular este comportamiento de alguna manera, para que el programa (SC DSP) pueda administrar adecuadamente el volumen de reproducción del micrófono/entrada de línea junto con el volumen de reproducción de salida de onda?

Mi idea sería emular un programa conectado al Vista Mixer para Wave-Out y Line-out (o volumen del altavoz del micrófono - toda la reproducción, mostrada como "programas" ajustables separados para que Vista Mixer pueda consultarlos) y 'conectarlo' al sistema bajo alguna emulación que se representa a sí misma como la antigua interfaz de control del mezclador de volumen del programa, pero, francamente, no tengo idea de cómo hacerlo.

Para aclarar:Esta no es mi PC (es una computadora portátil HP Pavilion).El problema parece existir principalmente debido al hecho de que Vista Mixer controla programas separados, no entradas/salidas separadas.El hardware es totalmente capaz de hacer lo que se necesita cuando se utiliza Windows XP.Soy muy consciente del hecho de que se trata de un problema de controladores, pero el controlador simplemente está preparado para lo que Vista presenta al programador a través de las interfaces.El dispositivo mezclador, tal como se ve en el sistema operativo, pero como se vea en el software, se basa en las API del mezclador para el control de audio de Windows.

Busque usando Google en Vista y controle el volumen de reproducción para obtener más información sobre el problema (y la gran cantidad de usuarios afectados por él).Por supuesto, una reescritura del complemento Shoutcast Source DSP para WinAMP sería suficiente, pero no es probable que eso suceda...

¿Fue útil?

Solución

Controlar los niveles de volumen de los niveles de entrada/salida individuales de una tarjeta de sonido en el mezclador de Windows Vista es posible utilizando el control de audio. API de punto final

Esto debería permitirle ajustar el volumen principal y el volumen de y conectado entradas de audio.Un inconveniente acerca de esto es que cuando enumera los puntos finales, si no hay un micrófono conectado a su tarjeta de sonido, no se enumerará nada.Esto significa que deberá cambiar su aplicación para responder a eventos de "micrófono conectado" y notificar al usuario de manera adecuada.

Otra opción es sumergirse debajo de Microsoft Core Audio y acceder al OndaRT conductor directamente.Esto supone mucho más trabajo que utilizar las API WASAPI/Endpoint, pero le dará el mayor control sobre el acceso a las entradas/salidas de la tarjeta de sonido.

Otros consejos

El controlador de audio controla qué controles del mezclador están disponibles, y esto dependerá en gran medida de las capacidades del hardware.

Si el controlador de Vista no tiene ciertos controles, entonces es probable que sea una deficiencia de ese controlador y no de Vista.

(Díganos qué tarjeta de sonido/dispositivo está utilizando).

Sería posible escribir un programa para crear sus propios controles de mezclador (este sería un controlador de software únicamente para una tarjeta de sonido virtual), pero este programa no podría afectar el enrutamiento de audio dentro del dispositivo si el controlador real No tiene ningún control de mezclador para esto.

Si marca que su aplicación se ejecuta en compatibilidad con Windows XP, todos los controles y comportamientos antiguos volverán.

Si marca que su aplicación se ejecuta en compatibilidad con Windows XP, todos los controles y comportamientos antiguos volverán.

Esto es cierto, pero a partir del parche KB957388 de Vista SP1, incluido en SP2, y con algunos controladores de tarjetas de sonido, las funciones antiguas de la API del mezclador (winmm.dll) pueden bloquearse cuando la aplicación está en modo de compatibilidad con XP.En particular, MixerGetNumDevs y, con menos frecuencia, MixerOpen no volverán a aparecer en algunas computadoras.

Recibí informes de 5 usuarios de Vista de alrededor de 200 usuarios de Vista en total donde mi aplicación se bloquea al iniciarse, y he rastreado hasta que estas funciones se bloquean.

Me gustaría informar esto a Microsoft pero no encuentro ningún lugar donde hacerlo.

Todo lo que puedo hacer ahora es lanzar mi software sin el modo de compatibilidad habilitado, pero esto pierde funcionalidad en mi aplicación y el software no puede controlar los mezcladores de entrada de línea ni de micrófono.

No tengo tiempo para trabajar directamente con funciones API de bajo nivel.Confío en componentes de alto nivel y no puedo encontrar ninguno para las nuevas API de audio para mi sistema de desarrollo (Delphi).

¡¡¡Me interesaría pagarle a alguien para que me escriba una DLL !!!correo electrónico ross att stationplaylist dott com

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top