2021年Android设备SRC(采样率转换)现状观察 - 知乎

如果你是关注手机音质的用户,那你大概也知道一直伴随着Android设备的“SRC问题”——Android系统会将不同采样率的音频重采样至某个固定频率(通常是48k),如果转换的采样率之间不是倍数关系,这个过程就会由重采样算法引入大量不必要的失真,这成为了Android与HiFi之间一堵难以逾越的屏障。

如果你是对Android与SRC有大概了解的普通用户,那你的知识来源多半是某些年代久远的上古文章,这就引出了本文要探究的问题:

经过数个年头、数个版本的迭代,Android设备在2021年的今天,是否还存在不可逾越的SRC障碍?


在正文开始之前,你需要了解App在Android上是如何播放音乐的,通常这有“2.5种”实现方法:

1)使用MediaPlayer,这是最初级的实现,常见于简单的音乐播放器以及其它类型的App。MediaPlayer是一个封装得十分完整的接口,App只需要指定音源即可,剩下的全部交由系统负责。

2)使用AudioTrack,这是较高级的实现,常见于需要对音频进行DSP的复杂音乐播放器,譬如QQ音乐、网易云以及YK Player。

2.5)类似UAPP等硬核级音乐播放器,它们严格意义上来说也是使用AudioTrack,但同时也包含其他更底层的方法,以此达成一些单纯依靠AudioTrack无法实现的效果。

例外)某些设备的内置播放器可以利用厂商预留的通道来实现免SRC的特权,但不具备普遍性,在此不讨论。

本文将使用从Android8.0到11共计7台设备,分别测试在耳机和USB输出下,以上三种接口是否发生了SRC。测试信号为96k24bit白噪声,MediaPlayer接口使用Solid Explorer内置播放器,AudioTrack接口使用YK Player,以及UAPP(内置音频驱动和USB DAC完美位元模式)。测试时如果记录的信号最高频率到达了96k采样率的上限48kHz,视为没有SRC;如果最高频率到了48k的上限24kHz就被截止,则视为SRC。


Google Pixel3a,Android11,类原生

耳机输出

MediaPlayer

AudioTrack

UAPP

USB输出

MediaPlayer

AudioTrack

UAPP

备注:Pixel代表了Android最标准的体验之一。当使用耳机输出时没有例外全部SRC,但使用USB输出时所有接口都没有发生SRC。

小米10Pro,Android11,MIUI12.5开发版

耳机输出

MediaPlayer

AudioTrack

UAPP

USB输出

MediaPlayer

AudioTrack

UAPP

备注:小米10Pro及其搭载的MIUI作为国内魔改Android的代表之一,在耳机口输出时只有完整封装的MediaPlayer没有SRC,而USB输出时没有SRC的除了MediaPlayer还有UAPP,全程只有AudioTrack受到了伤害。

索尼Xperia XZ3,Android10,(看起来)类原生

耳机输出

MediaPlayer

AudioTrack

UAPP

USB输出

MediaPlayer

AudioTrack

UAPP

备注:索尼Xperia XZ3的情况和小米10Pro完全一致,MediaPlayer一直都没有SRC,UAPP在USB输出时也没有SRC问题,只有AudioTrack受伤的世界诞生了。

三星Galaxy S5,Android10,LineageOS17.1

耳机输出

MediaPlayer

AudioTrack

UAPP

USB输出

MediaPlayer

AudioTrack

UAPP

备注:刷上了LineageOS的古董手机三星S5获得了和Pixel一致的音频SRC体验——仅耳机口会发生SRC,USB输出没有SRC问题。

索尼Xperia XZ Premium,Android9,(看起来)类原生

耳机输出

MediaPlayer

AudioTrack

UAPP

USB输出

MediaPlayer

AudioTrack

UAPP

备注:索尼Xperia XZ Premium无论什么输出,MediaPlayer和UAPP都不会SRC,AudioTrack都会SRC,这是只有AudioTrack受伤的世界。

艾巴索DX160,Android8.1,类原生

耳机输出

MediaPlayer

AudioTrack

UAPP

USB输出

MediaPlayer

AudioTrack

UAPP

备注:与其它手机不同,艾巴索DX160是专门的音频播放器,任何输出均没有发生SRC。

LG G7 ThinQ,Android8.0,LG定制

耳机输出

MediaPlayer

AudioTrack

UAPP

USB输出

MediaPlayer

AudioTrack

UAPP

备注:就算LG智能手机业务莫得了,也得把G7拉出来鞭尸,G7搭配UAPP在任何输出下都不存在SRC问题,但使用MediaPlayer和AudioTrack的其它播放器就没那么幸运了。


“现在的Android系统还有SRC问题吗?”

如果你认真看完了以上7台设备的测试结果,那你就会发现这个问题相当复杂,因为这和系统版本没有必然联系,新设备和新系统,SRC的概率未必会比老设备和老系统低。Android早就提供了绕过SRC的接口,但具体要不要使用,决定权在手机厂商手里。要想实现一次无需SRC的音频输出,需要的是手机厂商、音频硬件和播放软件三方的通力配合,任何一个环节不支持都会导致SRC的出现,所以不实际去测试,你很难猜得出来结果会怎样。

在很多用户的认知里,UAPP是能绕过SRC限制的神器,但如果用户使用耳机口输出,那UAPP还是会有不小的失灵概率,尤其是一些相对冷门的设备。所以UAPP用户最好还是如它的全名USB Audio Player Pro所说的那样,用外置USB音频硬件来尽可能地避免SRC。

所以2021年的今天,如何才能在Android手机上获得尽可能优秀的音质?答案:去下载YK Player,不要管那么多,虽然SRC单独拿出来看确实一团糟,但在同样一团糟的耳机面前,SRC显得不值一提,改善耳机带来的提升比改善SRC大得多得多得多。

从Google Play下载:

从酷安下载:

posted @ 2022-12-01 15:30  lingr7  阅读(1039)  评论(0编辑  收藏  举报