我正在尝试使用本机C在Android设备上以编程方式控制声卡。我知道可以使用tinyalsa工具(tinycap,tinymix等)与/ dev / snd中的声卡进行交互。但是,不同的手机/供应商具有不同的卡号,设备号和控制配置。
示例:
/dev/snd/pcmC0D0c
是指Card0,Device0,捕获(接受声音输入,而不是输出)。这可能是一个电话上的主要捕获声卡,但可能是另一部电话的捕获卡,即I.E。三星Note 4是:
/dev/snd/pcmC0D1c
我注意到的是,当使用诸如语音备忘录,Sounder Recorder等应用程序时,mediaserver(由C / C ++编写的一堆共享库所破坏)不会自动找到正确的声卡组合并启用/ dev / snd / control [ID_HERE]中正确的控件。无论设备如何,它如何智能地识别正确的组件?