1

有谁知道,这是否是大多数 Android (ARM) 设备上的默认 PCM 格式?

2 channels
16 bit
Little Endian

底层的“tinyalsa”可以处理

SNDRV_PCM_FORMAT_S32_LE
SNDRV_PCM_FORMAT_S8
SNDRV_PCM_FORMAT_S24_LE
SNDRV_PCM_FORMAT_S16_LE

但我想不出安卓使用不同的配置(?)。

Little Endian 肯定会在 ARM 设备上使用。

那2个频道呢?我发现没有办法播放单声道,所以我认为它总是转换成 2 声道。

是否有支持多通道的设备?

我对这些东西很陌生。

在此先感谢您的帮助!

4

1 回答 1

1

一般来说,我会说 16 位小端,是的。通道的数量取决于应用程序的请求。尽管某些设备将以立体声配置运行部分/所有输出线程,这与您在测试中发现的类似。如果您要输出到单声道接收器(例如,许多设备只有一个扬声器),通常这将通过模拟编解码器或 DSP 混合回单声道。

底层的“tinyalsa”可以处理

许多设备不使用 libtinyalsa。它们对内核空间 ALSA 驱动程序有自己的用户空间接口。例如,最近的 Qualcomm 平台使用自己的 libalsa-intf 进行大部分播放,而 libtinyalsa 仅用于 USB 音频播放(可能还有 A2DP)。

就多声道支持而言,如果将其写入单声道/立体声接收器(即在内部扬声器或 3.5 毫米耳机上),它可能会被下混为立体声,可能借助虚拟器效果创建虚假的感觉环绕。真正的环绕声仅限于支持它的接收器,即 HDMI/MHL,可能还有 USB。应该注意的是,即使在 HDMI/MHL 情况下,某些设备也会下混为立体声。

于 2013-03-27T09:08:12.723 回答