Roc*_*cky 10 c++ linux audio qt
我的商业嵌入式C++ Linux项目需要同时播放单个音量级别的wav文件和音调.一些声音的例子:
•每次用户按下用户指定音量播放的屏幕时,"点击"声音
•以最大音量播放警告声音
•其他应用程序在应用指定的音量级别(0-100%)请求的警告音
•未来支持MP3播放器和/或用户指定音量的视频播放(带声音).播放歌曲/视频时,所有其他声音应继续.
我们使用Qt作为我们的UI框架,它具有QtMultimedia和Phonon支持.但是,我听说前者在Linux上有不稳定的声音支持,后者是旧版本,可能会在即将推出的Qt版本中弃用.
我做了一些研究,这里有一些我遇到的API:
KDE Phonon
SFML
PortAudio
SDL_Mixer
OpenAL Soft
FMOD(虽然我更愿意避免许可费)
ALSA(可能有点太低级......)
其他考虑因素:跨平台不是必需的,但是首选.我们希望尽可能地限制依赖关系.在可预见的未来,不需要3D音频或特殊效果等高级功能.我的团队没有太多的音频体验,因此易于使用非常重要.
这些对我的申请有些过分吗?哪个看起来最合适?
更新: 事实证明,由于其他原因我们已经依赖SDL,因此我们决定使用SDL_Mixer.但是,对于其他嵌入式应用程序,由于它们的最小依赖性,我还需要很长时间使用PortAudio/libsndfile组合.
ao_initialize()
)ao_open_live()
或ao_open_file()
ao_play()
ao_close()
,然后ao_shutdown()
进行清理。我一次又一次地使用 SDL_Mixer,可爱的库,它应该很好地满足您的需求,许可证很灵活并且有大量文档。我也尝试过 SFML,虽然它更加现代且文档齐全,但我发现它使用起来有点笨重和麻烦,即使这两个库非常相似。我认为 SDL_Mixer 是最好的。
不过,您可能还想看看我几周前发现的这个http://www.mpg123.de/,我没有深入研究它,但它非常轻量级,而且许可证也很灵活。
归档时间: |
|
查看次数: |
15405 次 |
最近记录: |