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 |