Compartir a través de


Lectura de audio multicanal

[La característica asociada a esta página, WINDOWS Media Format 11 SDK, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. Lector de origen y escritor receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector fuente y escritor receptor en lugar del SDK de Windows Media Format 11, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El códec Windows Media Audio 9 Professional puede codificar audio multicanal (más de dos canales). Al leer un archivo con audio multicanal, debe configurar la salida correctamente o el audio se entregará a una calidad inferior y en estéreo. Para establecer una salida para la entrega de audio multicanal, debe establecer dos opciones de salida: g_wszEnableDiscreteOutput y g_wszSpeakerConfig.

Al establecer g_wszEnableDiscreteOutput en TRUE , se establece el códec para entregar la salida de audio de alta definición. El códec Windows Media Audio 9 codifica el audio de alta definición con muestras de 24 bits en estéreo o varios canales. Si esta configuración es FALSE, solo se entregará la salida estéreo de 16 bits.

El número de altavoces del equipo de reproducción se establece con g_wszSpeakerConfig. Esta configuración es un valor DWORD establecido en una de las constantes del altavoz DirectSound enumeradas en la tabla siguiente. Para resolver estos nombres de constantes para el compilador, debe incluir dsound.h.

Constante Value Descripción
DSSPEAKER_DIRECTOUT 0x00000000 El audio se pasa directamente, sin configurarse para los altavoces.
DSSPEAKER_HEADPHONE 0x00000001 El equipo cliente está equipado con auriculares.
DSSPEAKER_MONO 0x00000002 El equipo cliente está equipado con un altavoz monaural.
DSSPEAKER_QUAD 0x00000003 El equipo cliente está equipado con altavoces quadrafónicos.
DSSPEAKER_STEREO 0x00000004 El equipo cliente está equipado con altavoces estéreo.
DSSPEAKER_SURROUND 0x00000005 El equipo cliente está equipado con altavoces de sonido envolvente de cuatro canales.
DSSPEAKER_5POINT1 0x00000006 El equipo cliente está equipado con cinco altavoces y un subwoofer.
DSSPEAKER_7POINT1 0x00000007 El equipo cliente está equipado con siete altavoces y un subwoofer.

 

Para establecer esta configuración, use IWMReaderAdvanced2::SetOutputSetting.

Por último, para que los canales sean de salida discretamente, sin plegamiento a estéreo, debe establecer el tipo de medio correcto en la salida siguiendo estos pasos:

  1. Llame a IWMReader::GetOutputFormatCount para obtener el número de formatos admitidos para la salida de audio pertinente. Los índices de formato de salida son de base cero.
  2. Para cada formato admitido, llame a IWMReader::GetOutputFormat para recuperar la interfaz IWMOutputMediaProps en el objeto de propiedades multimedia de salida.
  3. Llame a IWMMediaProps::GetMediaType para recuperar el tipo de medio.
  4. Si el tipo de medio recuperado es el tipo multicanal deseado, establézcalo llamando a IWMReader::SetOutputProps.

Una vez establecida la salida discreta y la configuración del altavoz, los formatos de salida enumerados por el lector deben incluir formatos multicanal que usen la estructura WAVEFORMATEXTENSIBLE . Si enumera los formatos de salida antes de establecer las propiedades, solo se incluirán los formatos con 1 o 2 canales y se incluirá un máximo de 16 bits por canal. Al igual que con otros formatos de audio, solo debe usar los formatos enumerados por el lector; no configure el suyo propio.

Nota

Solo puede generar audio multicanal si la aplicación se ejecuta en Microsoft Windows XP o en una versión posterior de Microsoft Windows.

 

Entradas, secuencias y salidas

Leer archivos ASF

Configuración de salida

Trabajar con audio PCM de High-Resolution