Método IXAudio2::CreateSubmixVoice (xaudio2.h)

Crea y configura una voz de submezcla.

Sintaxis

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
);

Parámetros

[out] ppSubmixVoice

Si se ejecuta correctamente, devuelve un puntero al nuevo objeto IXAudio2SubmixVoice .

[in] InputChannels

Número de canales en los datos de audio de entrada de la voz de submezcla. InputChannels debe ser menor o igual que XAUDIO2_MAX_AUDIO_CHANNELS.

[in] InputSampleRate

Frecuencia de muestreo de los datos de audio de entrada de voz de submezcla. Esta tasa debe ser un múltiplo de XAUDIO2_QUANTUM_DENOMINATOR. InputSampleRate debe estar entre XAUDIO2_MIN_SAMPLE_RATE y XAUDIO2_MAX_SAMPLE_RATE.

[in] Flags

Marcas que especifican el comportamiento de la voz de submezcla. Puede ser 0 o lo siguiente:

Valor Descripción
XAUDIO2_VOICE_USEFILTER El efecto de filtro debe estar disponible en esta voz.

[in] ProcessingStage

Número arbitrario que especifica cuándo se procesa esta voz con respecto a otras voces de submezcla, si el motor XAudio2 ejecuta otras voces de submezcla. La voz se procesa después de todas las demás voces que incluyen un valor ProcessingStage más pequeño y antes de todas las demás voces que incluyen un valor ProcessingStage mayor. Las voces que incluyen el mismo valor processingStage se procesan en cualquier orden. Una voz de submezcla no puede enviar a otra voz de submezcla con un valor de ProcessingStage inferior o igual. Esto evita que se pierda el audio debido a un ciclo de submezcla.

[in, optional] pSendList

Puntero a una lista de estructuras de XAUDIO2_VOICE_SENDS que describen el conjunto de voces de destino para la voz de submezcla. Si pSendList es NULL, la lista de envío tendrá como valor predeterminado una única salida en la primera voz de maestro creada.

[in, optional] pEffectChain

Puntero a una lista de estructuras de XAUDIO2_EFFECT_CHAIN que describen una cadena de efectos que se va a usar en la voz de submezcla.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente; de lo contrario, un código de error.

Consulte Códigos de error XAudio2 para obtener descripciones de códigos de error específicos de XAudio2.

Comentarios

Las voces de submezcla reciben la salida de una o varias voces de origen o submezcla. Procesan la salida y, a continuación, la envían a otra voz de submezcla o a una voz de maestro.

Una voz de submezcla realiza una conversión de frecuencia de muestreo de la frecuencia de muestreo de entrada a la velocidad de entrada de sus voces de salida en pSendList. Si especifica varios envíos de voz, todos deben tener la misma frecuencia de muestreo de entrada.

No se pueden crear voces de origen o submezcla hasta que exista una voz de masterización y no se puede destruir una voz de maestro si todavía existen voces de origen o submezcla.

Cuando se crea por primera vez, las voces de submezcla están en estado iniciado.

XAudio2 usa un agrupador de memoria interno para las voces con el mismo formato. Esto significa que la asignación de memoria para las voces se producirá con menos frecuencia a medida que se crean más voces y, a continuación, se destruyen. Para minimizar las asignaciones Just-In-Time, un título puede crear el número máximo previsto de voces necesarias por adelantado y, a continuación, eliminarlas según sea necesario. Después, las voces se reutilizarán del grupo XAudio2. El grupo de memoria está asociado a una instancia del motor XAudio2. Puede reclamar toda la memoria usada por una instancia del motor XAudio2 destruyendo el objeto XAudio2 y volviendo a crearla según sea necesario (forzar el crecimiento del grupo de memoria a través de la asignación previa tendría que volver a aplicarse según sea necesario).

No es válido llamar a CreateSubmixVoice desde una devolución de llamada (es decir, IXAudio2EngineCallback o IXAudio2VoiceCallback). Si llama a CreateSubmixVoice dentro de una devolución de llamada, devuelve XAUDIO2_E_INVALID_CALL.

El XAUDIO2_EFFECT_CHAIN que se pasa como argumento pEffectChain y cualquier información XAUDIO2_EFFECT_DESCRIPTOR contenida en él ya no es necesaria después de que CreateSubmixVoice se complete correctamente y se pueda eliminar inmediatamente después de llamar a CreateSubmixVoice .

Requisitos de la plataforma

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

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado xaudio2.h

Consulte también

IXAudio2

Conversiones de frecuencia de muestreo XAudio2