Présentation de XAPO
l’API XAPO permet la création d’objets de traitement audio multiplateforme (XAPO) pour une utilisation dans XAudio2 à la fois sur Windows et sur Xbox 360. Un XAPO est un objet qui utilise des 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 ajouter un verbe à un flux audio et surveiller les niveaux de volume des pics.
Création de XAPOs
L’API XAPO fournit l’interface IXAPO et la classe CXAPOBase pour la génération de nouveaux types XAPO. L’interface IXAPO contient toutes les méthodes qui doivent être implémentées pour créer un nouveau 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 tionnaire , qui est unique à chaque XAPO.
Pour obtenir un exemple de création d’un nouveau XAPO, consultez Comment : créer un XAPO.
Pour obtenir un exemple de création d’un XAPO qui accepte des paramètres au moment de l’exécution, consultez Comment : ajouter la prise en charge des paramètres d’exécution à un XAPO.
XAPOs et COM
XAPOs implémente 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 compte de référence de 1. Elle sera détruite quand son décompte de références devient 0. Les implémentations de IXAPO et IXAPOParameters doivent suivre le même modèle pour permettre la gestion appropriée lorsqu’elles sont utilisées avec XAudio2.
Les instances XAPO sont passées à 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 de IXAPO doivent accepter les demandes pour _ _ uuidof (IXAPO). Si IXAPOParameters est implémenté, il doit également accepter les demandes pour _ _ uuidof (IXAPOParameters).
Utilisation d’un XAPO dans XAudio2
Les XAPOs sont utilisés dans XAudio2 en les joignant à des voix. Chaque voix XAudio2 a une chaîne d’effet contenant zéro 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 tionnaire . Ensuite, il est renvoyé à 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 reste 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 Comment : 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 a des effets de réverbération et de mesure de volume intégrés. Pour plus d’informations sur les effets XAudio2 intégrés, consultez effets audio XAudio2 .