Android音频子系统(十三)------audio音频测试工具

你好!这里是风筝的博客,

欢迎和我一起交流。


测试音频延时的话,一般使用WALT来测试是最为准确的,他是借助了外部硬件来捕获音频信号,某宝上有卖:
walt
就是有丢丢小贵,本打工人还是想想白嫖的法子…

谷歌有cts测试工具:CtsVerifier.apk,专门做兼容性测试的,其中里面有关于audio的测试。
cts
Cts工具下载链接:https://source.android.com/docs/compatibility/cts/downloads?hl=zh-cn

不过CtsVerifier.apk不是专门的audio的工具,最近发现一个工具挺好用的,专门测试audio的。
在google商店可以下载:OboeTster。

Oboe是一个C ++库,可以轻松在Android上构建高性能音频应用程序。它主要是为了允许开发人员针对简化的API,该API跨多个API级别回到API级别16(Jelly Bean)
下载地址:https://apkpure.com/tw/oboetester/com.mobileer.oboetester/download

打开APK,主要有几个测试项可用:
oboe

  • TEST OUTPUT:测试播放
  • TEST INPUT:测试录音
  • TAP TO TONE Latency:测试播放延时
  • ROUND TRIP Latency:测试播放+录音往返延时
  • ECHO INPUT TO OUTPUT:回音测试
  • RECORD AND PLAY:录音然后播放
  • GLITCH TEST:故障测试
  • AUTO GLITCH TEST:自动故障测试
  • TEST DISCONNECT:断开测试?
  • DEVICE REPORT:设备信息
  • DATA PATHS:数据通路
  • EXTRAS TEST:额外的测试

每个TEST项都有很详细的测试数据可以查看。
我主要关注两个测试项:TAP TO TONE Latency和ROUND TRIP Latency
两个都是测试latency,延时是音频很重要的一个指标,外放延时,数字耳机延时,模拟耳机延时,蓝牙耳机延时,非常影响用户的体验。

TAP TO TONE Latency

在TAP TO TONE Latency,测试点击屏幕播放到设备出声的这段时间延时:
taptotone
点击START之后即可测试,用指甲和指腹一起敲击屏幕下方绿色区域即可测试播放latency。
参数可以用默认参数,比如aaudio,这里我设备没有支持aaudio,MMAP也是灰色的。
播放latency避免泄漏我就不放了,开启aaudio之后外放能做到20ms的latency。
bufferSize下面的三个圆框属于period count,设置设置2.
既bufferSize = 256 * 2 = 512.

Device可以选择测试的设备,数字耳机、模拟耳机或者蓝牙耳机,speaker,都行。

ROUND TRIP Latency

在ROUND TRIP Latency,可以测试播放+录音往返延时。
round trip
MEASURE是测量单次,AVERAGE是测量五次平均值。

这里input burst是128,output burst是256,bufferSize还是512.

latency主要看latency.msec即可,关于timestamp.latency,只是时间戳信息,可以不用关注。
倒是看到有人提了一个issues:Why the “latency.msec” is not equals to input’s “timestamp.latency” plus output’s “timestamp.latency” in “Round Trip Latency”

扫描二维码关注公众号,回复: 15052658 查看本文章

还有其他TEST项就不一一列举了,例如DEVICE REPORT:
我插入一款华为的数字耳机就有信息report
huawei
可以看出这款华为数字耳机最高支持96K播放等等信息。

最后,GitHub上也可以找到这个oboe源码:https://github.com/google/oboe

猜你喜欢

转载自blog.csdn.net/Guet_Kite/article/details/129668116