Compartilhar via


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

Cria e configura uma voz de submixagem.

Sintaxe

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

Em caso de êxito, retorna um ponteiro para o novo objeto IXAudio2SubmixVoice .

[in] InputChannels

Número de canais nos dados de áudio de entrada da voz de submixagem. InputChannels deve ser menor ou igual a XAUDIO2_MAX_AUDIO_CHANNELS.

[in] InputSampleRate

Taxa de amostragem dos dados de áudio de entrada da voz de submixagem. Essa taxa deve ser um múltiplo de XAUDIO2_QUANTUM_DENOMINATOR. InputSampleRate deve estar entre XAUDIO2_MIN_SAMPLE_RATE e XAUDIO2_MAX_SAMPLE_RATE.

[in] Flags

Sinalizadores que especificam o comportamento da voz de submixagem. Pode ser 0 ou o seguinte:

Valor Descrição
XAUDIO2_VOICE_USEFILTER O efeito de filtro deve estar disponível nessa voz.

[in] ProcessingStage

Um número arbitrário que especifica quando essa voz é processada em relação a outras vozes de submixagem, se o mecanismo XAudio2 estiver executando outras vozes de submixagem. A voz é processada após todas as outras vozes que incluem um valor de ProcessingStage menor e antes de todas as outras vozes que incluem um valor de ProcessingStage maior. As vozes que incluem o mesmo valor ProcessingStage são processadas em qualquer ordem. Uma voz de submixagem não pode enviar para outra voz de submixagem com um valor de ProcessingStage inferior ou igual. Isso impede que o áudio seja perdido devido a um ciclo de submix.

[in, optional] pSendList

Ponteiro para uma lista de estruturas de XAUDIO2_VOICE_SENDS que descrevem o conjunto de vozes de destino para a voz de submixagem. Se pSendList for NULL, a lista de envio usará como padrão uma única saída para a primeira voz de masterização criada.

[in, optional] pEffectChain

Ponteiro para uma lista de estruturas de XAUDIO2_EFFECT_CHAIN que descrevem uma cadeia de efeitos a ser usada na voz da submixagem.

Retornar valor

Retorna S_OK se tiver êxito; caso contrário, um código de erro.

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

Comentários

As vozes de submixagem recebem a saída de uma ou mais vozes de origem ou submixagem. Eles processam a saída e a enviam para outra voz de submixagem ou para uma voz de masterização.

Uma voz de submixagem executa uma conversão de taxa de amostragem da taxa de amostragem de entrada para a taxa de entrada de suas vozes de saída em pSendList. Se você especificar vários envios de voz, todos eles deverão ter a mesma taxa de amostragem de entrada.

Você não pode criar vozes de origem ou submixagem até que exista uma voz de masterização e não poderá destruir uma voz de masterização se ainda existirem vozes de origem ou submixagem.

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

O XAudio2 usa um pooler de memória interno para vozes com o mesmo formato. Isso significa que a alocação de memória para vozes ocorrerá com menos frequência à medida que mais vozes forem criadas e destruídas. Para minimizar as alocações just-in-time, um título pode criar o número máximo previsto de vozes necessárias antecipadamente e excluí-las conforme necessário. Em seguida, as vozes serão reutilizados do pool XAudio2. O pool de memória está vinculado a uma instância do mecanismo XAudio2. Você pode recuperar toda a memória usada por uma instância do mecanismo XAudio2 destruindo o objeto XAudio2 e recriando-o conforme necessário (forçar o pool de memória a crescer por meio da pré-alocação teria que ser reaplicado conforme necessário).

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

As XAUDIO2_EFFECT_CHAIN 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 bem-sucedida de CreateSubmixVoice e podem ser excluídas imediatamente após CreateSubmixVoice ser chamado.

Requisitos de 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

IXAudio2

Conversões de taxa de amostra XAudio2