Share via


Panoramica di XAPO

L'API XAPO consente la creazione di oggetti di elaborazione audio multipiattaforma (XAPO) da usare in XAudio2 in Windows e Xbox 360. Un XAPO è un oggetto che accetta dati audio in ingresso ed esegue un'operazione sui dati prima di passarlo. È possibile usare un XAPO per eseguire diverse attività, tra cui l'aggiunta di reverb a un flusso audio e il monitoraggio dei livelli di volume di picco.

Creazione di nuovi XAPO

L'API XAPO fornisce l'interfaccia IXAPO e la classe CXAPOBase per la creazione di nuovi tipi XAPO. L'interfaccia IXAPO contiene tutti i metodi che devono essere implementati per creare un nuovo XAPO . La classe CXAPOBase fornisce un'implementazione di base dell'interfaccia IXAPO . CXAPOBase implementa tutti i metodi di interfaccia IXAPO , ad eccezione del metodo IXAPO::P rocess , univoco per ogni XAPO.

Per un esempio di creazione di una nuova XAPO, vedere Procedura: Creare un XAPO.

Per un esempio di creazione di una XAPO che accetta parametri di runtime, vedere Procedura: Aggiungere il supporto dei parametri di runtime a un XAPO.

XAPOs e COM

XAPOs implementa l'interfaccia IUnknown . Le interfacce IXAPO e IXAPOParameters includono i tre metodi IUnknown: QueryInterface, AddRef e Release. CXAPOBase fornisce implementazioni di tutti e tre i metodi IUnknown. Una nuova istanza di CXAPOBase avrà un numero di riferimenti pari a 1. Verrà distrutto quando il conteggio dei riferimenti diventa 0. Le implementazioni di IXAPO e IXAPOParameters devono seguire lo stesso modello per consentire la gestione corretta quando usata con XAudio2.

Le istanze XAPO vengono passate a XAudio2 come interfacce IUnknown . XAudio2 usa QueryInterface per acquisire un'interfaccia IXAPO e per rilevare se XAPO implementa l'interfaccia IXAPOParameters . Le implementazioni di IXAPO devono accettare richieste per __uuidof(IXAPO). Se viene implementato IXAPOParameters , deve anche accettare richieste per __uuidof(IXAPOParameters).

Uso di una XAPO in XAudio2

Gli XAPO vengono usati in XAudio2 collegandoli alle voci. Ogni voce XAudio2 ha una catena di effetti contenente zero o più effetti audio. I dati audio inviati a una voce vengono passati attraverso ogni effetto della catena prima che venga inviato alle destinazioni di output della voce. I dati vengono passati dalla voce a ogni effetto usando il parametro pInputProcessParameters del metodo IXAPO::P rocess . Viene quindi restituito alla voce usando il parametro pOutputProcessParameters . La voce accetta l'output di ogni effetto e lo alimenta nell'effetto successivo nella catena fino a quando non vengono lasciati effetti nella catena.

Per altre informazioni sulle catene di effetti XAudio2, vedere Effetti audio XAudio2.

Per un esempio di uso di una XAPO in XAudio2, vedere Procedura: Usare un XAPO in XAudio2.

Librerie di effetti

La libreria di effetti XAPO contiene diversi XAPO e un metodo comune per crearne un'istanza. Per informazioni su XAPOFX, vedere Panoramica di XAPOFX . Inoltre, XAudio2 include effetti di riverbero e contatore del volume predefiniti. Vedere Effetti audio XAudio2 per altre informazioni sugli effetti XAudio2 predefiniti.

Effetti audio

Effetti audio di XAudio2