2010-07-27 6 views
2

Je développe une application Linux sur un ordinateur avec deux cartes audio et je veux utiliser les deux à la fois dans OpenAL, chacun dans son propre contexte. Lorsque j'appelle l'extension d'énumération OpenAL, alcGetString (NULL, ALC_DEVICE_SPECIFIER), pour obtenir une liste des périphériques de sortie possibles, la liste se compose uniquement de 'ALSA Software' et de 'OSS Software'. Je sais que ce ne sont que la vue d'OpenAL sur les périphériques logiciels, alors quand je choisis l'une de ces options, OpenAL sort juste l'audio sur le périphérique par défaut configuré dans ALSA ou OSS. Je ne suis même pas sûr que ce soit possible, mais existe-t-il un moyen de diriger la sortie audio d'un contexte OpenAL vers un périphérique spécifique? De cette façon, je pourrais créer deux contextes, un pour chaque périphérique, et envoyer un son séparé à chacun.Sortie OpenAL vers plusieurs périphériques (Linux)

Merci, -Al

+0

Vous pouvez accepter votre propre réponse, et devrait probablement dans cette situation :). Je l'ai trouvé utile, merci. – Ephphatha

Répondre

4

je l'ai fait quelques essais aujourd'hui et a trouvé la réponse. Apparemment, vous devez appeler alcGetString avec l'argument ALC_ALL_DEVICES_SPECIFIER pour obtenir la liste complète. Un changement assez simple, mais la documentation d'OpenAL sur cette fonctionnalité est au mieux trouble et au pire trompeuse. Voir la section 9.5 de la spécification OpenAL 1.1 et la sous-section "Extensions de Creative Labs à OpenAL" -> "Enumerate All Extension" -> "Récupération des noms de périphériques" du Guide du programmeur OpenAL pour voir ce que je veux dire.

documentation OpenAL: http://connect.creativelabs.com/openal/Documentation/Forms/AllItems.aspx