如何获取有关设备的SOUND CHIP或Sound功能的信息?

时间:2014-09-05 11:23:21

标签: android audio android-audiomanager

有可能以编程方式获取有关声音芯片或至少设备声音功能的信息吗?

我找不到任何关于它的信息

1 个答案:

答案 0 :(得分:0)

声音芯片一个过时的用词不当 - 几乎与声卡一样糟糕。

由于您已将此问题标记为Android,因此我假设您正在谈论移动设备。在这些系统中,音频系统有两个组件:

  • 流媒体引擎,负责使用DMA将串行音频流(通常为I2S)流入和流出内存。这是作为片上系统(SoC)的一部分实现的。这些通常是不可枚举的,并且具有特定于SoC的设备驱动程序。
  • 编解码器 - 实际上也是一个误称 - 它至少包含了数字和数字模拟转换器,并且通常具有音频混合和DSP功能。编解码器作为独立组件存在的唯一原因 - 而不是沉浸在SoC设备中 - 是可制造性的。

硬件实现细节完全由Android抽象出来,如architecture diagram所示。应用程序对世界的看法本质上是一个任意采样率的立体声音频(系统将根据需要进行转换)。

如果您想了解功能以绕过AudioFlinger,或者准确了解设备的硬件包含的内容 - 我认为您需要为任何应用程序执行此操作是对传入音频进行任何类型的准确分析 - 这是一个完全不同的命题。

许多(但不是全部)Android设备在Alsa之上实现Audio HAL,因此使用其API是一种可能性。这显然必须在本机代码中完成。

编解码器对设备功能有实际影响,而不是流媒体。编解码器是由I2C连接的,因此您将能够在sysfs的相应目录中发现它们。他们也倾向于拥有自己的内核模块,因此这可能是另一种方法。