Metodo IXAudio2Voice::SetOutputMatrix (xaudio2.h)

Imposta il livello di volume di ogni canale dell'output finale per la voce. Questi canali vengono mappati ai canali di input di una voce di destinazione specificata.

Sintassi

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

Parametri

[in] pDestinationVoice

Puntatore a una destinazione IXAudio2Voice per cui impostare i livelli di volume.

Nota Se la voce invia a una singola voce di destinazione, la specifica di NULL causerà il funzionamento di SetOutputMatrix sulla voce di destinazione.
 

[in] SourceChannels

Conferma il conteggio dei canali di output della voce. Si tratta del numero di canali prodotti dall'ultimo effetto nella catena.

[in] DestinationChannels

Conferma il conteggio dei canali di input della voce di destinazione.

[in] pLevelMatrix

Matrice di livelli di volume [SourceChannels × DestinationChannels] inviati alla voce di destinazione. Il livello inviato dal canale di origine S al canale di destinazione D viene specificato nel formato pLevelMatrix[SourceChannels × D + S].

Ad esempio, quando si esegue il rendering dell'input stereo a due canali in un output 5.1 ponderato verso i canali frontali, ma assente dai canali al centro e a bassa frequenza, la matrice potrebbe avere i valori indicati nella tabella seguente.

Output Input sinistro [indice matrice] Input destro [indice matrice]
Sinistra 1.0 [0] 0.0 [1]
Destra 0.0 [2] 1.0 [3]
Front Center 0.0 [4] 0.0 [5]
LFE 0.0 [6] 0.0 [7]
Posteriore sinistra 0.8 [8] 0.0 [9]
Indietro a destra 0.0 [10] 0.8 [11]
 
Nota L'input sinistro e destro è completamente mappato ai canali di output sinistro e destro; Viene eseguito il mapping dell'80% dell'input sinistro e destro ai canali posteriori sinistro e destro.
 
Per altre informazioni sui livelli di volume, vedere La sezione Osservazioni.

[in] OperationSet

Identifica questa chiamata come parte di un batch posticipato. Per altre informazioni, vedere panoramica dei set di operazioni XAudio2 .

Valore restituito

Restituisce S_OK in caso di esito positivo, in caso contrario, un codice di errore. Per le descrizioni dei codici di errore, vedere Codici di errore XAudio2 .

Commenti

Questo metodo è valido solo per le voci di origine e submix, perché le voci mastering scrivono direttamente nel dispositivo senza combinazioni di matrici.

I livelli di volume sono espressi come moltiplicatori di ampiezza a virgola mobile tra -XAUDIO2_MAX_VOLUME_LEVEL e XAUDIO2_MAX_VOLUME_LEVEL (-2²⁴ a 2²⁴), con un guadagno massimo di 144,5 dB. Un livello di volume di 1,0 indica che non c'è attenuazione o guadagno e 0 significa silenzio. I livelli negativi possono essere usati per invertire la fase dell'audio. Per altre informazioni sul controllo del volume, vedere Controllo volume e pitch di XAudio2 .

La funzione X3DAudio X3DAudioCalculate può produrre una matrice di output da usare con SetOutputMatrix in base alla posizione di un suono e alla posizione di un listener.

NotaIXAudio2Voice::GetOutputMatrix restituisce sempre i livelli impostati più di recente da IXAudio2Voice::SetOutputMatrix. Tuttavia, potrebbero non essere effettivamente in vigore ancora: diventano effettive solo la volta successiva che il motore audio viene eseguito dopo la chiamata IXAudio2Voice::SetOutputMatrix (o dopo la chiamata IXAudio2::CommitChanges corrispondente, se IXAudio2Voice::SetOutputMatrix è stato chiamato con un ID operazione posticipato).
 

Requisiti della piattaforma

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

Requisiti

   
Piattaforma di destinazione Windows
Intestazione xaudio2.h

Vedi anche

Procedura: Modificare il volume vocale

IXAudio2Voice