我对ALSA声音库有疑问。ALSA - 多线程和音频“独家访问”HW
让我先说明一下,像我这样的问题的常见回答是“使用JACK”, ,并且那个anwer没有帮助,因为我可能无法使用JACK。 我正在Android设备上运行本机linux程序(而不是 NDK,但真的是本地的),并且从我所搜集的内容来看,JACK不适用于Android,因为某些libc和posix不兼容。
的问题:
1)我可以使用2个不同的线程,一个)读取捕获的样本和b)采样回放?我见过的所有ALSA“全双工”示例只是使用交替读取/写入带有阻塞函数的声卡,这看起来不是太好,特别是如果您的程序应该做的比这更多。
2)据我所知,ALSA混合不同应用程序播放的音频,非常像Windows音频混音器。是否有可能独占访问音频设备,这样我的应用程序将保证是唯一一个播放音频,而不会混淆动态范围的恶化?
据我所知Android操作系统是负责管理系统的声音,也没有办法直接在非根/非修改设备上访问ALSA。 – Kristopher
更重要的是,不能保证底层实际上是ALSA。 – marko
你是什么意思/你能说一说吗,马可? – user1847129