Partager via


IXAudio2Voice::SetOutputMatrix, méthode (xaudio2.h)

Définit le niveau de volume de chaque canal de la sortie finale de la voix. Ces canaux sont mappés aux canaux d’entrée d’une voix de destination spécifiée.

Syntaxe

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

Paramètres

[in] pDestinationVoice

Pointeur vers une destination IXAudio2Voice pour laquelle définir des niveaux de volume.

Note Si la voix envoie à une seule voix cible, la spécification de NULL entraîne l’action de SetOutputMatrix sur cette voix cible.
 

[in] SourceChannels

Confirme le nombre de canaux de sortie de la voix. Il s’agit du nombre de canaux produits par le dernier effet de la chaîne.

[in] DestinationChannels

Confirme le nombre de canaux d’entrée de la voix de destination.

[in] pLevelMatrix

Tableau des niveaux de volume [SourceChannels × DestinationChannels] envoyés à la voix de destination. Le niveau envoyé du canal source S au canal D de destination est spécifié sous la forme pLevelMatrix[SourceChannels × D + S].

Par exemple, lors du rendu d’une entrée stéréo à deux canaux dans une sortie 5.1 pondérée vers les canaux avant( mais absente des canaux centre et basse fréquence), la matrice peut avoir les valeurs indiquées dans le tableau suivant.

Output Entrée gauche [Index de tableau] Entrée droite [Index de tableau]
Gauche 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]
Arrière gauche 0.8 [8] 0.0 [9]
Arrière droit 0.0 [10] 0.8 [11]
 
Note Les entrées gauche et droite sont entièrement mappées aux canaux de sortie gauche et droit ; 80 % des entrées gauche et droite sont mappées aux canaux arrière gauche et droit.
 
Pour plus d’informations sur les niveaux de volume, consultez Remarques.

[in] OperationSet

Identifie cet appel dans le cadre d’un lot différé. Pour plus d’informations, consultez vue d’ensemble des jeux d’opérations XAudio2 .

Valeur retournée

Retourne S_OK en cas de réussite, un code d’erreur dans le cas contraire. Consultez Codes d’erreur XAudio2 pour obtenir une description des codes d’erreur.

Remarques

Cette méthode est valide uniquement pour les voix sources et les voix de sous-mixage, car le mastering des voix écrit directement sur l’appareil sans mélange de matrice.

Les niveaux de volume sont exprimés sous forme de multiplicateurs d’amplitude à virgule flottante entre -XAUDIO2_MAX_VOLUME_LEVEL et XAUDIO2_MAX_VOLUME_LEVEL (-2²⁴ à 2²⁴), avec un gain maximal de 144,5 dB. Un niveau de volume de 1.0 signifie qu’il n’y a pas d’atténuation ou de gain et 0 signifie silence. Les niveaux négatifs peuvent être utilisés pour inverser la phase audio. Pour plus d’informations sur le contrôle de volume, consultez Contrôle de volume et de tangage XAudio2 .

La fonction X3DAudioX3DAudioCalculate peut produire une matrice de sortie à utiliser avec SetOutputMatrix en fonction de la position d’un son et de la position d’un écouteur.

RemarqueIXAudio2Voice::GetOutputMatrix retourne toujours les niveaux les plus récemment définis par IXAudio2Voice::SetOutputMatrix. Toutefois, elles ne sont peut-être pas encore en vigueur : elles ne prennent effet que la prochaine fois que le moteur audio s’exécute après l’appel IXAudio2Voice::SetOutputMatrix (ou après l’appel IXAudio2::CommitChanges correspondant, si IXAudio2Voice::SetOutputMatrix a été appelé avec un ID d’opération différé).
 

Configuration requise pour la plateforme

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8) ; Kit de développement logiciel (SDK) DirectX (XAudio 2.7)

Spécifications

   
Plateforme cible Windows
En-tête xaudio2.h

Voir aussi

Guide pratique pour modifier le volume vocal

IXAudio2Voice