Visão geral do XAPO
A API XAPO permite a criação de objetos de processamento de áudio multiplataforma (XAPO) para uso no XAudio2 no Windows e no Xbox 360. Um XAPO é um objeto que usa dados de áudio de entrada e executa alguma operação nos dados antes de passá-los. Você pode usar um XAPO para executar uma variedade de tarefas, incluindo adicionar reverb a um fluxo de áudio e monitorar níveis de volume de pico.
Criando novos XAPOs
A API XAPO fornece a interface IXAPO e a classe CXAPOBase para criar novos tipos de XAPO. A interface IXAPO contém todos os métodos que precisam ser implementados para criar um novo XAPO. A classe CXAPOBase fornece uma implementação básica da interface IXAPO . O CXAPOBase implementa todos os métodos de interface IXAPO , exceto o método IXAPO::P rocess , que é exclusivo para cada XAPO.
Para obter um exemplo de criação de um novo XAPO, consulte Como criar um XAPO.
Para obter um exemplo de criação de um XAPO que aceita parâmetros de tempo de execução, consulte Como adicionar suporte a parâmetros em tempo de execução a um XAPO.
XAPOs e COM
Os XAPOs implementam a interface IUnknown . As interfaces IXAPO e IXAPOParameters incluem os três métodos IUnknown : QueryInterface, AddRef e Release. O CXAPOBase fornece implementações dos três métodos IUnknown. Uma nova instância do CXAPOBase terá uma contagem de referência de 1. Ele será destruído quando sua contagem de referência se tornar 0. As implementações de IXAPO e IXAPOParameters devem seguir o mesmo padrão para permitir o gerenciamento adequado quando usadas com XAudio2.
As instâncias XAPO são passadas para XAudio2 como interfaces IUnknown . O XAudio2 usa QueryInterface para adquirir uma interface IXAPO e detectar se o XAPO implementa a interface IXAPOParameters . As implementações do IXAPO devem aceitar solicitações de __uuidof(IXAPO). Se IXAPOParameters for implementado, ele também deverá aceitar solicitações de __uuidof(IXAPOParameters).
Usando um XAPO no XAudio2
Os XAPOs são usados no XAudio2 anexando-os a vozes. Cada voz XAudio2 tem uma cadeia de efeitos que contém zero ou mais efeitos de áudio. Os dados de áudio enviados para uma voz são passados por cada efeito na cadeia antes de serem enviados para os destinos de saída da voz. Os dados são passados da voz para cada efeito usando o parâmetro pInputProcessParameters do método IXAPO::P rocess . Em seguida, ele é retornado para a voz usando o parâmetro pOutputProcessParameters . A voz usa a saída de cada efeito e a alimenta no próximo efeito na cadeia até que nenhum efeito seja deixado na cadeia.
Para obter mais informações sobre cadeias de efeito XAudio2, consulte Efeitos de áudio XAudio2.
Para obter um exemplo de como usar um XAPO no XAudio2, consulte Como usar um XAPO no XAudio2.
Bibliotecas de efeitos
A biblioteca de efeitos XAPO contém vários XAPOs e um método comum de instanciá-los. Consulte Visão geral do XAPOFX para obter informações sobre XAPOFX. Além disso, o XAudio2 tem efeitos internos de reverb e medidor de volume. Consulte Efeitos de áudio XAudio2 para obter mais informações sobre os efeitos XAudio2 internos.
Tópicos relacionados