Compartilhar via


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

Define o nível de volume de cada canal da saída final para a voz. Esses canais são mapeados para os canais de entrada de uma voz de destino especificada.

Sintaxe

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

Parâmetros

[in] pDestinationVoice

Ponteiro para um IXAudio2Voice de destino para o qual definir níveis de volume.

Nota Se a voz for enviada para uma única voz de destino, especificar NULL fará com que SetOutputMatrix opere nessa voz de destino.
 

[in] SourceChannels

Confirma a contagem de canais de saída da voz. Esse é o número de canais produzidos pelo último efeito na cadeia.

[in] DestinationChannels

Confirma a contagem de canais de entrada da voz de destino.

[in] pLevelMatrix

Matriz de níveis de volume [SourceChannels × DestinationChannels] enviados para a voz de destino. O nível enviado do canal de origem S para o canal de destino D é especificado no formulário pLevelMatrix[SourceChannels × D + S].

Por exemplo, ao renderizar a entrada estéreo de dois canais em uma saída 5.1 ponderada em direção aos canais frontais, mas ausente dos canais central e de baixa frequência, a matriz pode ter os valores mostrados na tabela a seguir.

Saída Entrada à esquerda [Índice de Matriz] Entrada direita [Índice de matriz]
Esquerda 1.0 [0] 0.0 [1]
Direita 0.0 [2] 1.0 [3]
Front Center 0.0 [4] 0.0 [5]
LFE 0.0 [6] 0.0 [7]
Parte traseira esquerda 0.8 [8] 0.0 [9]
Direita Traseira 0.0 [10] 0.8 [11]
 
Nota As entradas esquerda e direita são totalmente mapeadas para os canais esquerdo e direito de saída; 80% da entrada esquerda e direita é mapeada para os canais traseiro esquerdo e direito.
 
Consulte Comentários para obter mais informações sobre níveis de volume.

[in] OperationSet

Identifica essa chamada como parte de um lote adiado. Consulte a visão geral dos Conjuntos de Operações XAudio2 para obter mais informações.

Valor retornado

Retorna S_OK se tiver êxito, caso contrário, um código de erro. Consulte Códigos de Erro XAudio2 para obter descrições de códigos de erro.

Comentários

Esse método é válido apenas para vozes de origem e submixagem, pois as vozes de masterização são gravadas diretamente no dispositivo sem combinação de matriz.

Os níveis de volume são expressos como multiplicadores de amplitude de ponto flutuante entre -XAUDIO2_MAX_VOLUME_LEVEL e XAUDIO2_MAX_VOLUME_LEVEL (-2²⁴ a 2²⁴), com um ganho máximo de 144,5 dB. Um nível de volume de 1,0 significa que não há atenuação ou ganho e 0 significa silêncio. Níveis negativos podem ser usados para inverter a fase do áudio. Consulte XAudio2 Volume and Pitch Control para obter informações adicionais sobre o controle de volume.

A função X3DAudioX3DAudioCalculate pode produzir uma matriz de saída para uso com SetOutputMatrix com base na posição de um som e na posição de um ouvinte.

ObservaçãoIXAudio2Voice::GetOutputMatrix sempre retorna os níveis mais recentemente definidos por IXAudio2Voice::SetOutputMatrix. No entanto, eles podem ainda não estar em vigor: eles só entrarão em vigor na próxima vez que o mecanismo de áudio for executado após a chamada IXAudio2Voice::SetOutputMatrix (ou após a chamada IXAudio2::CommitChanges correspondente, se IXAudio2Voice::SetOutputMatrix foi chamado com uma ID de operação adiada).
 

Requisitos da plataforma

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

Requisitos

   
Plataforma de Destino Windows
Cabeçalho xaudio2.h

Confira também

Como alterar o volume de voz

IXAudio2Voice