Compartir a través de


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

Crea y configura una voz de maestro.

Sintaxis

HRESULT CreateMasteringVoice(
  [out]          IXAudio2MasteringVoice     **ppMasteringVoice,
  [in]           UINT32                     InputChannels,
  [in]           UINT32                     InputSampleRate,
  [in]           UINT32                     Flags,
  [in]           LPCWSTR                    szDeviceId,
  [in, optional] const XAUDIO2_EFFECT_CHAIN *pEffectChain,
  [in, optional] AUDIO_STREAM_CATEGORY      StreamCategory
);

Parámetros

[out] ppMasteringVoice

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

[in] InputChannels

Número de canales que espera la voz de maestro en su audio de entrada. InputChannels debe ser menor o igual que XAUDIO2_MAX_AUDIO_CHANNELS.

Puede establecer InputChannels en XAUDIO2_DEFAULT_CHANNELS, lo que hace que XAudio2 intente detectar la configuración del altavoz del sistema.

[in] InputSampleRate

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

Puede establecer InputSampleRate en XAUDIO2_DEFAULT_SAMPLERATE, con el valor predeterminado determinado por la plataforma actual.

Windows XP tiene como valor predeterminado 44100.

Windows Vista y Windows 7 se establecen de forma predeterminada en la configuración especificada en el Panel de control sonido. El valor predeterminado para esta configuración es 44100 (o 48000 si es necesario para el controlador).

Marcas

[in] Flags

Marcas que especifican el comportamiento de la voz de maestro. Puede ser 0 o XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT.

[in] szDeviceId

Identificador del dispositivo para recibir el audio de salida. Especificar el valor predeterminado de NULL hace que XAudio2 seleccione el dispositivo de audio predeterminado global. En Windows 10 o posterior, NULL también participará en el cliente virtualizado WASAPI a menos que XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT se pase en Marcas.

[in, optional] pEffectChain

Puntero a una estructura de XAUDIO2_EFFECT_CHAIN que describe una cadena de efectos que se va a usar en la voz de maestro o NULL para no usar efectos.

[in, optional] StreamCategory

Categoría de secuencia de audio que se va a usar para esta voz de maestro.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente; de lo contrario, un código de error. Devuelve ERROR_NOT_FOUND si no existe ningún dispositivo de audio predeterminado y se pasa NULL como parámetro szDeviceId.

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

Comentarios

Las voces de maestro reciben la salida de una o varias voces de origen o submezcla. Procesan los datos y los envían al dispositivo de salida de audio.

Normalmente, debe crear una voz de maestro con una frecuencia de muestreo de entrada que usará la mayoría del contenido de audio del título. La voz de maestro realiza una conversión de frecuencia de muestreo de esta frecuencia de muestreo de entrada a la velocidad de salida del dispositivo real.

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

Las voces de maestro siempre se procesan después de todas las voces de origen y submezcla. Esto significa que no necesita especificar un parámetro ProcessingStage para controlar el orden de procesamiento.

XAudio2 solo permite que exista una voz de maestro a la vez. Si intenta crear más de una voz, se devuelve XAUDIO2_E_INVALID_CALL. Si se necesita una voz de procesamiento adicional, por ejemplo, para un dispositivo de salida con un conjunto de categorías de audio diferente, deberá crear una instancia de XAudio2 adicional.

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

No es válido llamar a CreateMasteringVoice desde una devolución de llamada (es decir, IXAudio2EngineCallback o IXAudio2VoiceCallback). Si llama a CreateMasteringVoice 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 de XAUDIO2_EFFECT_DESCRIPTOR contenida en él ya no es necesaria después de que CreateMasteringVoice se complete correctamente y se pueda eliminar inmediatamente después de llamar a CreateMasteringVoice .

Tenga en cuenta que el SDK de DirectX XAUDIO2 versión de CreateMasteringVoice tomó un argumento DeviceIndex en lugar de un szDeviceId y un argumento StreamCategory. Esto refleja los cambios necesarios para el modelo de enumeración de dispositivos Windows estándar.

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

Cómo: crear un gráfico de procesamiento de audio básico

IXAudio2

Información general sobre XAPO

Conversiones de frecuencia de muestreo XAudio2