【问题标题】:Default PCM-format on AndroidAndroid 上的默认 PCM 格式
【发布时间】:2013-03-27 17:08:12
【问题描述】:

有谁知道这是否是大多数 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 使用不同的配置 (?)。

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

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

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

我对这些东西很陌生。

提前感谢您的帮助!

【问题讨论】:

    标签: android audio default


    【解决方案1】:

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

    底层的“tinyalsa”可以处理

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

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

    【讨论】:

    • 哦,这已经是一个很好的答案,谢谢。顺便说一句,您知道大约有多少(从不)Android 移动设备同时使用 tinyalsa? ;)
    • 高通公司,我简单提到过它的解决方案,是市场上最大的供应商。 ST-Ericsson 在涉及 tinyalsa (IIRC) 时使用了类似的方法。我不知道三星/NVidia/Intel 是做什么的。
    • 因为我有一个三星 Galaxy Nexus 并且它使用 tinyalsa,我认为三星采用的是 tinyalsa 方式 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    相关资源
    最近更新 更多