有人知道这是不是大多数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但我想不出Android会使用不同的配置(?)。
在ARM设备上,小字节序是肯定的。
那么这两个通道呢?我发现没有办法让单声道音频播放,所以我认为它总是转换为2声道。
是否有支持多通道的设备?
我是个新手。
提前感谢您的帮助!
发布于 2013-03-27 17:08:13
一般来说,我会说16位小端,是的。通道的数量取决于应用程序请求的内容。尽管有些设备会在立体声配置中运行一些/所有输出线程,这与您在测试中发现的情况类似。通常,如果您要输出到单声道接收器(例如,许多设备只有一个扬声器),则模拟编解码器或DSP会将其混合回单声道。
底层的"tinyalsa“可以处理
许多设备不使用libtinyalsa。对于内核空间的ALSA驱动程序,它们有自己的用户空间接口。例如,最近的高通平台使用自己的libalsa-intf进行大多数回放,而libtinyalsa仅用于USB音频回放(可能还有A2DP)。
就多声道支持而言,如果将其写入单声道/立体声接收器(即内置扬声器或3.5 of耳机),它将被下混合为立体声,这可能是在创建假环绕感的虚拟器效果的帮助下进行的。真正的环绕立体声仅限于支持它的接收器,例如HDMI/MHL,可能还有USB。应该注意的是,即使在HDMI/MHL的情况下,一些设备也会向下混合到立体声。
https://stackoverflow.com/questions/15654613
复制相似问题