Share via


IXAudio2 ::CreateSubmixVoice, méthode (xaudio2.h)

Crée et configure une voix de sous-mixage.

Syntaxe

HRESULT CreateSubmixVoice(
  [out]          IXAudio2SubmixVoice        **ppSubmixVoice,
  [in]           UINT32                     InputChannels,
  [in]           UINT32                     InputSampleRate,
  [in]           UINT32                     Flags,
  [in]           UINT32                     ProcessingStage,
  [in, optional] const XAUDIO2_VOICE_SENDS  *pSendList,
  [in, optional] const XAUDIO2_EFFECT_CHAIN *pEffectChain
);

Paramètres

[out] ppSubmixVoice

En cas de réussite, retourne un pointeur vers le nouvel objet IXAudio2SubmixVoice .

[in] InputChannels

Nombre de canaux dans les données audio d’entrée de la voix de sous-mixage. InputChannels doit être inférieur ou égal à XAUDIO2_MAX_AUDIO_CHANNELS.

[in] InputSampleRate

Taux d’échantillonnage des données audio d’entrée de la voix de submix. Ce taux doit être un multiple de XAUDIO2_QUANTUM_DENOMINATOR. InputSampleRate doit se trouver entre XAUDIO2_MIN_SAMPLE_RATE et XAUDIO2_MAX_SAMPLE_RATE.

[in] Flags

Indicateurs qui spécifient le comportement de la voix de sous-mixage. Il peut s’agir de 0 ou de ce qui suit :

Valeur Description
XAUDIO2_VOICE_USEFILTER L’effet de filtre doit être disponible sur cette voix.

[in] ProcessingStage

Nombre arbitraire qui spécifie quand cette voix est traitée par rapport à d’autres voix de sous-mixage, si le moteur XAudio2 exécute d’autres voix de sous-mélange. La voix est traitée après toutes les autres voix qui incluent une valeur ProcessingStage plus petite et avant toutes les autres voix qui incluent une valeur ProcessingStage plus grande. Les voix qui incluent la même valeur ProcessingStage sont traitées dans n’importe quel ordre. Une voix de sous-mix ne peut pas envoyer à une autre voix de sous-mix avec une valeur ProcessingStage inférieure ou égale. Cela empêche la perte de l’audio en raison d’un cycle de sous-mixage.

[in, optional] pSendList

Pointeur vers une liste de structures XAUDIO2_VOICE_SENDS qui décrivent l’ensemble des voix de destination pour la voix de sous-mixage. Si pSendList a la valeur NULL, la liste d’envoi sera par défaut une seule sortie à la première voix de mastering créée.

[in, optional] pEffectChain

Pointeur vers une liste de structures XAUDIO2_EFFECT_CHAIN qui décrivent une chaîne d’effets à utiliser dans le sous-mix vocal.

Valeur retournée

Retourne S_OK en cas de réussite ; sinon, un code d’erreur.

Consultez Codes d’erreur XAudio2 pour obtenir des descriptions des codes d’erreur spécifiques à XAudio2.

Remarques

Les voix de sous-mix reçoivent la sortie d’une ou plusieurs voix sources ou submix. Ils traitent la sortie, puis l’envoient à une autre voix de sous-mixage ou à une voix de mastering.

Une voix de sous-mélange effectue une conversion de taux d’échantillonnage du taux d’échantillonnage d’entrée vers le taux d’entrée de ses voix de sortie dans pSendList. Si vous spécifiez plusieurs envois vocaux, ils doivent tous avoir le même taux d’échantillonnage d’entrée.

Vous ne pouvez pas créer de voix source ou de sous-mixage tant qu’il n’existe pas de voix de mastering, et vous ne pouvez pas détruire une voix de mastering si des voix source ou de sous-mixage existent encore.

Lors de la première création, les voix de sous-mix sont à l’état démarré.

XAudio2 utilise un pooleur de mémoire interne pour les voix au même format. Cela signifie que l’allocation de mémoire pour les voix se produit moins fréquemment à mesure que davantage de voix sont créées, puis détruites. Pour réduire les allocations juste-à-temps, un titre peut créer le nombre maximal prévu de voix nécessaires à l’avance, puis les supprimer si nécessaire. Les voix seront ensuite réutilisées à partir du pool XAudio2. Le pool de mémoire est lié à un moteur XAudio2 instance. Vous pouvez récupérer toute la mémoire utilisée par un instance du moteur XAudio2 en détruisant l’objet XAudio2 et en le recréant si nécessaire (forcer le pool de mémoire à croître via la prélocalisation doit être réappliqué si nécessaire).

Il n’est pas valide d’appeler CreateSubmixVoice à partir d’un rappel (autrement dit, IXAudio2EngineCallback ou IXAudio2VoiceCallback). Si vous appelez CreateSubmixVoice dans un rappel, il retourne XAUDIO2_E_INVALID_CALL.

Le XAUDIO2_EFFECT_CHAIN transmis en tant qu’argument pEffectChain et les informations XAUDIO2_EFFECT_DESCRIPTOR qu’il contient ne sont plus nécessaires une fois CreateSubmixVoice terminé, et peuvent être supprimés immédiatement après l’appel de CreateSubmixVoice .

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)

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête xaudio2.h

Voir aussi

IXAudio2

Conversions de taux d’échantillonnage XAudio2