Método IXAudio2Voice::SetOutputMatrix (xaudio2.h)

Establece el nivel de volumen de cada canal de la salida final de la voz. Estos canales se asignan a los canales de entrada de una voz de destino especificada.

Sintaxis

\\HRESULT SetOutputMatrix(
  [in] IXAudio2Voice *pDestinationVoice,
  [in] UINT32        SourceChannels,
  [in] UINT32        DestinationChannels,
  [in] const float   *pLevelMatrix,
  [in] UINT32        OperationSet
);

Parámetros

[in] pDestinationVoice

Puntero a un destino IXAudio2Voice para el que se van a establecer los niveles de volumen.

Nota Si la voz envía a una sola voz de destino, especificar NULL hará que SetOutputMatrix funcione en esa voz de destino.
 

[in] SourceChannels

Confirma el recuento de canales de salida de la voz. Este es el número de canales generados por el último efecto de la cadena.

[in] DestinationChannels

Confirma el recuento de canales de entrada de la voz de destino.

[in] pLevelMatrix

Matriz de niveles de volumen de [SourceChannels × DestinationChannels] enviados a la voz de destino. El nivel enviado desde el canal de origen S al canal de destino D se especifica con el formato pLevelMatrix[SourceChannels × D + S].

Por ejemplo, al representar la entrada estéreo de dos canales en una salida de 5,1 ponderada hacia los canales frontales, pero que no está presente en los canales central y de baja frecuencia, la matriz podría tener los valores que se muestran en la tabla siguiente.

Resultados Entrada izquierda [Índice de matriz] Entrada derecha [Índice de matriz]
Left 1.0 [0] 0.0 [1]
Right 0.0 [2] 1.0 [3]
Front Center 0.0 [4] 0.0 [5]
LFE 0.0 [6] 0.0 [7]
Parte trasera izquierda 0.8 [8] 0.0 [9]
Atrás a la derecha 0.0 [10] 0.8 [11]
 
Nota La entrada izquierda y derecha están totalmente asignadas a los canales izquierdo y derecho de salida; El 80 por ciento de la entrada izquierda y derecha se asigna a los canales traseros izquierdo y derecho.
 
Vea Comentarios para obtener más información sobre los niveles de volumen.

[in] OperationSet

Identifica esta llamada como parte de un lote diferido. Consulte la introducción a los conjuntos de operaciones XAudio2 para obtener más información.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, de lo contrario, un código de error. Consulte Códigos de error de XAudio2 para obtener descripciones de los códigos de error.

Observaciones

Este método solo es válido para las voces de origen y submezcla, ya que la creación de voces de maestro se escribe directamente en el dispositivo sin mezclar matrices.

Los niveles de volumen se expresan como multiplicadores de amplitud de punto flotante entre -XAUDIO2_MAX_VOLUME_LEVEL y XAUDIO2_MAX_VOLUME_LEVEL (-2²⁴ a 2²⁴), con una ganancia máxima de 144,5 dB. Un nivel de volumen de 1,0 significa que no hay atenuación ni ganancia y 0 significa silencio. Los niveles negativos se pueden usar para invertir la fase del audio. Consulte Control de volumen y tono XAudio2 para obtener información adicional sobre el control de volumen.

La función X3DAudio X3DAudioCalculate puede generar una matriz de salida para su uso con SetOutputMatrix basada en la posición de un sonido y la posición de un agente de escucha.

NotaIXAudio2Voice::GetOutputMatrix siempre devuelve los niveles establecidos más recientemente por IXAudio2Voice::SetOutputMatrix. Sin embargo, es posible que aún no estén en vigor: solo surten efecto la próxima vez que se ejecute el motor de audio después de la llamada IXAudio2Voice::SetOutputMatrix (o después de la llamada IXAudio2::CommitChanges correspondiente, si se llamó a IXAudio2Voice::SetOutputMatrix con un identificador de operación diferido).
 

Requisitos de la plataforma

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); SDK de DirectX (XAudio 2.7)

Requisitos

   
Plataforma de destino Windows
Encabezado xaudio2.h

Consulte también

Cómo: Cambiar el volumen de voz

IXAudio2Voice