Il mio progetto commerciale C++ Linux commerciale richiede la riproduzione simultanea di file e toni wav a livello di volume individuale. Alcuni esempi di suoni:Semplice API C++ Sound
• “Click” suoni ogni volta che l'utente preme schermata riprodotta a un volume specificato dall'utente
• Attenzione suoni riprodotti al massimo volume
• Toni di avviso richiesti da altre applicazioni in App-Il livello di volume specificato (0-100%)
• Supporto futuro per lettore MP3 e/o riproduzione video (con audio) al volume specificato dall'utente. Tutti gli altri suoni dovrebbero continuare mentre il brano/video è in riproduzione.
Utilizziamo Qt come framework UI che supporta QtMultimedia e Phonon. Tuttavia, ho sentito il primo ha il supporto audio spotty su Linux e il secondo è una versione precedente e può essere abbandonata in un imminente rilascio di Qt.
Ho fatto qualche ricerca e qui ci sono un paio di API che ho incontrato:
KDE Phonon
SFML
PortAudio
SDL_Mixer
OpenAL Soft
FMOD (anche se io preferirei di evitare i costi di licenza)
ALSA (forse un po 'troppo basso livello ...)
Altre considerazioni: La multipiattaforma non è richiesta ma è preferibile. Vorremmo limitare il più possibile le dipendenze. Non sono necessarie funzionalità avanzate come l'audio 3D o effetti speciali nel prossimo futuro. Il mio team non ha molta esperienza audio, quindi la facilità d'uso è importante.
Qualcuno di questi è eccessivo per la mia applicazione? Quale sembra la soluzione migliore?
Aggiornamento: Si scopre eravamo già dipendenti da SDL per altre ragioni così abbiamo deciso di SDL_mixer. Per le altre applicazioni Embedded, tuttavia, impiegherei molto tempo nel combo PortAudio/libsndfile anche a causa delle loro dipendenze minime.
Stavamo facendo audio commerciale su Linux embedded qualche anno prima 2005-2008, e mentre ricordo il nostro stack audio C++ parlato direttamente con ALSA. http://www.alsa-project.org/main/index.php/Main_Page –