zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

【Android 高性能音频】OboeTest 音频性能测试应用 ( 应用简介 | 测试内容 | 输出测试 | Oboe 缓冲区 与 工作负载修改 | 测试案例 )

2023-06-13 09:17:43 时间

文章目录

一、Oboe 测试应用


Oboe 测试应用 :

① Oboe GitHub 页面 : GitHub / Oboe ;

② Oboe 发布版本下载界面 : release 版本下载 , 这里我下载的是 1.4.3 版本 ; 下载 Source code ( zip ) 即可 ;

③ Oboe 测试应用 :

  • 文件路径 : oboe-1.4.3\apps\OboeTester , 下载后 , 解压 oboe-1.4.3.zip , 即可在上述目录找到测试应用
  • GitHub 地址 : OboeTester
  • 主要作用 : 可用于测试 Oboe 各种特征 , OpenSL ES , AAudio 等 ; 还可以测量 设备 音频延迟 和 故障 ;

④ 测试方式 : 既可以作为一个交互式应用运行 ( 交互式用法 ) , 又可以进行自动化测试 ( 自动化测试用法 ) ;

⑤ Oboe 测试应用编译 : 参考文档 , 就是个 Android 应用 , 导入到 Android Studio 中编译运行即可 ;

二、Oboe 测试内容


OboeTester 测试内容 :

  • 输出测试
  • 输入测试
  • 触摸发音延迟
  • 录音播放性能测试
  • 回波输入输出测试
  • 音频往返延迟
  • 故障测试
  • 自动故障测试
  • 断开测试

测试主界面 :

三、Oboe 输出测试


Oboe 输出测试 :

① 参数 显示 / 隐藏 : 点击 绿条 , 可以 显示 , 隐藏 输入 ( Input ) / 输出 ( Output ) 参数 ;

② 测试 音频流 的 打开 , 开始 , 暂停 , 停止 , 关闭 ;

③ 音频流参数设置 : 音频流 打开前 可以设置不同的参数 ;

④ 实时显示 : 音频流 播放时 , 会实时显示 帧计数 和 音频流状态 ;

⑤ 延迟信息 : 延迟信息是 根据 时间戳信息 , 估算的 ;

四、Oboe 缓冲区 与 工作负载修改


Oboe 缓冲区 与 工作负载修改 :

① 修改缓冲区测试 : 尝试 改变缓冲区的大小 , 设置缓冲区不同大小 , 查看是否有故障产生 ; 缓冲区越大 , 延迟越大 ;

② 修改工作负载 : 尝试 修改工作负载 , 即采样的速度 , 工作负载越大 , 采样速度越慢 ; 工作量大 , 采样慢 , 没有按时间交付音频采样 , 就会出现 欠载 ( UnderRun ) 的情况 ;

③ 修改工作负载目的 : 查看 帧计数器 和 XRun 值 , XRun 指的是 欠载 ( UnderRun ) 或 超限 ( OverRun ) 的情况 ;

④ XRun 概念 : XRun 是指 AAudio 音频流的 欠载 ( UnderRun ) 或 超限 ( OverRun ) ;

⑤ 额外工作负载 : 在采样循环中 , 通过计算一个随机值 , 生成额外负载 , 将该结果添加到输出中 ;

五、Oboe 输出测试 ( Pixel 2 | Android 10 )


Oboe 输出测试 :

① 测试运行前 :

② 打开音频流 :

③ 开始播放音频流 : 可以看到输出延迟是

4.3

毫秒 ; Google 手机的音频延迟还是不错的 ;