API C ++ Sound simple
Mon commercial embedded C++ Linux projet nécessite de jouer des fichiers wav, et les tons à différents niveaux de volume en même temps. Quelques exemples de sons:
• “, Cliquez sur” sons " à chaque fois que l'utilisateur appuie sur l'écran joué à un utilisateur-volume spécifié
• Sons d'alerte joué à max-volume
• Les tonalités d'alerte demandé par d'autres applications à l'application spécifiée niveau de volume (0-100%)
• À l'avenir, le soutien pour le lecteur MP3 et/ou de la vidéo (avec le son) à l'utilisateur-volume spécifié. Tous les autres sons devrait continuer alors que la chanson/vidéo en cours de lecture.
Nous sommes à l'aide de Qt comme notre framework d'INTERFACE qui a QtMultimedia et Phonon de soutien. Cependant, j'ai entendu le premier a l'irrégularité de son support sur Linux et le dernier est une version plus ancienne et peut être obsolète dans un prochain Qt version.
J'ai fait quelques recherches et voici quelques Api je suis venu à travers:
KDE Phonon
SFML
PortAudio
SDL_Mixer
OpenAL Doux
FMOD (même si je préfère éviter les frais de licence)
ALSA (peut-être un peu trop de bas niveau...)
D'autres considérations:
Croix-plate-forme n'est pas obligatoire mais préférable. Nous aimerions limiter les dépendances autant que possible. Il n'est pas nécessaire pour les fonctionnalités avancées telles que l'audio 3D ou d'effets spéciaux dans un avenir prévisible. Mon équipe n'a pas beaucoup d'expérience audio si la facilité d'utilisation est important.
Sont l'un de ces overkill pour mon application? Ce qui semble être la plus adaptée?
Mise à jour:
Il s'avère que nous étions déjà dépendants de SDL pour d'autres raisons, nous avons décidé de SDL_Mixer. Pour d'autres applications Embarquées, cependant, je voudrais prendre un long à la PortAudio/libsndfile combo aussi bien en raison de leur peu de dépendances.
source d'informationauteur Rocky
Vous devez vous connecter pour publier un commentaire.
j'ai utilisé SDL_Mixer fois, belle bibliothèque, il doit bien servir à vos besoins, la licence est souple et ses fortement documenté. j'ai également expérimenté avec la SFML, tandis que les plus modernes et assez documenté, je le trouve un peu encombrant et difficile à utiliser même quand les deux bibliothèques sont très similaires. omi SDL_Mixer est le meilleur.
cependant vous pourriez également vouloir vérifier ce que j'ai trouvé il y a quelques semaines http://www.mpg123.de/je n'ai pas fouillé trop, mais il est très léger et, de nouveau, la licence est flexible.
libao est simple, multi-plateforme, Xiphy bonté.
Il y a la documentation trop!
Utilisation est décrite ici - simple d'utilisation qui va comme ceci:
ao_initialize()
)ao_open_live()
ouao_open_file()
ao_play()
ao_close()
et puisao_shutdown()
à nettoyer.Aller pour PortAudio. Pour la simple audio sans d'inutiles frais généraux tels que les complexes streaming pipelines, ou de la 3D, c'est le meilleur lib. En outre, vous avez vraiment sympa de la croix-plate-forme de soutien. Il est utilisé par plusieurs programmes audio et a vraiment de haute qualité.
Il y a une bibliothèque de sons appelé STK qui permettrait de répondre à la plupart de vos exigences:
https://ccrma.stanford.edu/software/stk/faq.html
N'oubliez pas:
FFmpeg: est une solution multi-plateforme pour enregistrer, convertir et diffuser de l'audio et de la vidéo.
GStreamer: est une bibliothèque pour la construction de graphes de médias-de la manipulation des composants. Les applications, il prend en charge vont de la simple Ogg/Vorbis de la lecture, de l'audio/vidéo en streaming audio (mixage) et vidéo (montage non-linéaire) de traitement.