Compartilhar via


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

Cria e configura uma voz de domínio.

Sintaxe

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

Se tiver êxito, retornará um ponteiro para o novo objeto IXAudio2MasteringVoice .

[in] InputChannels

Número de canais que a voz de domínio espera em seu áudio de entrada. InputChannels deve ser menor ou igual a XAUDIO2_MAX_AUDIO_CHANNELS.

Você pode definir InputChannels como XAUDIO2_DEFAULT_CHANNELS, o que faz com que xAudio2 tente detectar a configuração do alto-falante do sistema.

[in] InputSampleRate

Taxa de exemplo dos dados de áudio de entrada da voz de masterização. Essa taxa deve ser um múltiplo de XAUDIO2_QUANTUM_DENOMINATOR. InputSampleRate deve estar entre XAUDIO2_MIN_SAMPLE_RATE e XAUDIO2_MAX_SAMPLE_RATE.

Você pode definir InputSampleRate como XAUDIO2_DEFAULT_SAMPLERATE, com o padrão sendo determinado pela plataforma atual.

O Windows XP usa como padrão 44100.

O Windows Vista e o Windows 7 são padrão para a configuração especificada na Painel de Controle de Som. O padrão para essa configuração é 44100 (ou 48000, se necessário, pelo driver).

Flags

[in] Flags

Sinalizadores que especificam o comportamento da voz de domínio. Isso pode ser 0 ou XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT.

[in] szDeviceId

Identificador do dispositivo para receber o áudio de saída. Especificar o valor padrão de NULL faz com que XAudio2 selecione o dispositivo de áudio padrão global. No Windows 10 ou posterior, NULL também aceitará o cliente virtualizado WASAPI, a menos que XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT seja passado em Sinalizadores.

[in, optional] pEffectChain

Ponteiro para uma estrutura XAUDIO2_EFFECT_CHAIN que descreve uma cadeia de efeitos a ser usada na voz de masterização ou NULL para não usar efeitos.

[in, optional] StreamCategory

A categoria de fluxo de áudio a ser usada para essa voz de masterização.

Retornar valor

Retorna S_OK se tiver êxito; caso contrário, um código de erro. Retorna ERROR_NOT_FOUND se nenhum dispositivo de áudio padrão existir e NULL for passado como o parâmetro szDeviceId.

Consulte Códigos de Erro XAudio2 para obter descrições de códigos de erro específicos do XAudio2.

Comentários

As vozes de masterização recebem a saída de uma ou mais vozes de origem ou submix. Eles processam os dados e os enviam para o dispositivo de saída de áudio.

Normalmente, você deve criar uma voz de domínio com uma taxa de exemplo de entrada que será usada pela maioria do conteúdo de áudio do título. A voz de masterização executa uma conversão de taxa de exemplo dessa taxa de exemplo de entrada para a taxa de saída real do dispositivo.

Você não pode criar uma origem ou submixar vozes até que exista uma voz de domínio. Você não poderá destruir uma voz de domínio se ainda existirem vozes de origem ou submixagem.

As vozes de masterização são sempre processadas após todas as vozes de origem e submixagem. Isso significa que você não precisa especificar um parâmetro ProcessingStage para controlar a ordem de processamento.

O XAudio2 só permite que uma voz de domínio exista de uma só vez. Se você tentar criar mais de uma voz, XAUDIO2_E_INVALID_CALL será retornado. Se uma voz de masterização adicional for necessária, por exemplo, para um dispositivo de saída com um conjunto de categorias de áudio diferente, você precisará criar uma instância XAudio2 adicional.

Quando criadas pela primeira vez, as vozes de domínio estão no estado iniciado.

É inválido chamar CreateMasteringVoice de dentro de um retorno de chamada (ou seja, IXAudio2EngineCallback ou IXAudio2VoiceCallback). Se você chamar CreateMasteringVoice em um retorno de chamada, ele retornará XAUDIO2_E_INVALID_CALL.

As XAUDIO2_EFFECT_CHAIN que são passadas como o argumento pEffectChain e quaisquer informações de XAUDIO2_EFFECT_DESCRIPTOR contidas nela não são mais necessárias após a conclusão do CreateMasteringVoice com êxito e podem ser excluídas imediatamente após CreateMasteringVoice ser chamado.

Observe que o SDK do DirectX XAUDIO2 versão de CreateMasteringVoice teve um argumento DeviceIndex em vez de um szDeviceId e um argumento StreamCategory. Isso reflete as alterações necessárias para o modelo de enumeração de dispositivo Windows padrão.

Requisitos da plataforma

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

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho xaudio2.h

Confira também

Como: Compilar um gráfico de processamento de áudio básico

IXAudio2

Visão geral do XAPO

Conversões de taxa de exemplo XAudio2