Partager via


Vue d’ensemble de XAPO

L’API XAPO permet la création d’objets de traitement audio multiplateforme (XAPO) à utiliser dans XAudio2 sur Windows et Xbox 360. Un XAPO est un objet qui prend les données audio entrantes et effectue une opération sur les données avant de les transmettre. Vous pouvez utiliser un XAPO pour effectuer diverses tâches, notamment l’ajout de la réverbération à un flux audio et la surveillance des niveaux de volume de pointe.

Création de nouveaux objets XAPOs

L’API XAPO fournit l’interface IXAPO et la classe CXAPOBase pour créer de nouveaux types XAPO. L’interface IXAPO contient toutes les méthodes qui doivent être implémentées pour créer un XAPO. La classe CXAPOBase fournit une implémentation de base de l’interface IXAPO . CXAPOBase implémente toutes les méthodes d’interface IXAPO , à l’exception de la méthode IXAPO::P rocess , qui est unique à chaque XAPO.

Pour obtenir un exemple de création d’un XAPO, consultez Guide pratique pour créer un XAPO.

Pour obtenir un exemple de création d’un XAPO qui accepte des paramètres d’exécution, consultez Guide pratique pour ajouter la prise en charge des paramètres d’exécution à un XAPO.

XAPOs et COM

XAPOs implémentent l’interface IUnknown . Les interfaces IXAPO et IXAPOParameters incluent les trois méthodes IUnknown : QueryInterface, AddRef et Release. CXAPOBase fournit des implémentations des trois méthodes IUnknown. Une nouvelle instance de CXAPOBase aura un nombre de références de 1. Il sera détruit lorsque son nombre de références deviendra 0. Les implémentations d’IXAPO et D’IXAPOParameters doivent suivre le même modèle pour permettre leur gestion appropriée lorsqu’elles sont utilisées avec XAudio2.

Les instances XAPO sont transmises à XAudio2 en tant qu’interfaces IUnknown . XAudio2 utilise QueryInterface pour acquérir une interface IXAPO et détecter si le XAPO implémente l’interface IXAPOParameters . Les implémentations d’IXAPO doivent accepter les demandes de __uuidof(IXAPO). Si IXAPOParameters est implémenté, il doit également accepter les demandes de __uuidof(IXAPOParameters).

Utilisation d’un XAPO dans XAudio2

Les XAPOs sont utilisés dans XAudio2 en les attachant à des voix. Chaque voix XAudio2 a une chaîne d’effets contenant aucun ou plusieurs effets audio. Les données audio envoyées à une voix sont transmises à chaque effet de la chaîne avant d’être envoyées aux cibles de sortie de la voix. Les données sont transmises de la voix à chaque effet à l’aide du paramètre pInputProcessParameters de la méthode IXAPO::P rocess . Ensuite, il est retourné à la voix à l’aide du paramètre pOutputProcessParameters . La voix prend la sortie de chaque effet et l’alimente dans l’effet suivant de la chaîne jusqu’à ce qu’aucun effet ne soit laissé dans la chaîne.

Pour plus d’informations sur les chaînes d’effets XAudio2, consultez Effets audio XAudio2.

Pour obtenir un exemple d’utilisation d’un XAPO dans XAudio2, consultez Guide pratique pour utiliser un XAPO dans XAudio2.

Bibliothèques d’effets

La bibliothèque d’effets XAPO contient plusieurs XAPOs et une méthode courante pour les instancier. Pour plus d’informations sur XAPOFX, consultez Vue d’ensemble de XAPOFX . En outre, XAudio2 intègre des effets de réverbération et de compteur de volume. Pour plus d’informations sur les effets XAudio2 intégrés, consultez Effets audio XAudio2 .

Effets audio

Effets audio XAudio2