Android Audio Latency测试
Audio Latency 通常是一个非常棘手的问题它的核心点在于播放音乐的过程中如果延迟低就容易发生卡顿延迟高就比较流畅但过高的延迟会带来音画同步的问题用户会感觉慢半拍。所以延迟和流畅就像天平的两端一样要取舍才能达到平衡。如何测试延迟非常重要只有拿到延迟的数据才能进行参数调优场景1设备A发送音频数据 - 通过网络 - 设备B发声方法11首先保证设备A和设备B支持同时发声不同的设备不同的环境开启手法有差异或者直接修改底层以支持。在android平台上可以使用 setprop persist.audio.delay.test 1 命令开启。2播放特定的打点音乐如正弦波这种音乐专门用于测量延迟。可根据图片中的网址自行下载。3将两个麦克风连上录音盒麦克风分别对着设备A和设备B然后在电脑上打开Audacity软件查看实时的波峰或者其他指标来计算波峰之间的时间差得到的就是延迟。方法2如果没有录音盒在方法一的基础上也可以用手机拍摄视频。拍摄20秒钟即可然后将视频导入Audacity分析波峰的时间差。如图所示的延迟是60ms。方法3编写demo设备A点击按钮时立刻将画面显示成全屏红目的是用于标记此时设备A不发声让设备B发声。如果没有录音盒手机拍摄视频手机的拍摄帧率必须要求120fps或者240fps太低的话误差太大。为什么呢假设手机为30fps即每秒只能拍摄30张图片每张图片的间隔就是1000ms/30 33.3 ms在测试延迟的环境下随便误差一下就是33ms所以几乎测不准。拍摄完成后可以使用PotPlayer、剪映等软件找到画面改变的时间戳以及之后的第一个波峰时间戳将两个时间戳相减即可得到延迟注意此方案受视频本身的影响测量结果精确度不佳场景二设备单独发声的Latency测试该场景不需要传输数据包编解码的工作都在本地可以使用谷歌官方提供的OboeTester APP测试如图是小米14的测试结果latency均值在37.9ms。

相关新闻

最新新闻

日新闻

周新闻

月新闻