Android Audio实战——音频链路分析(二十五)

        在 Android 系统的开发过程当中,音频异常问题通常有如下几类:无声、调节不了声音、爆音、声音卡顿和声音效果异常(忽大忽小,低音缺失等)等。尤其声音效果这部分问题通常从日志上信息量较少,相对难定位根因。想要分析此类问题,便需要对声音传输链路有一定的了解,能够在链路中对各节点的音频流进行采集,通过对比分析音频流的实际效果来缩小问题范围,找出原因。

一、音频链路

        抓取音频链路当中的音频数据是分析声音异常问题的有效方法,通过抓取不同节点的声音数据,可以帮助我们快速定位问题发生的原因。

音频系统框架

        对于这张图我们并不陌生,正是安卓官方的音频系统框架图。Audio 音频数据流整体上经过 APP、framework、hal、kernel driver 四个部分。

        从应用端发起,不管调用 audio 还是 media 接口,最终还是会由 AudioTrack 将数据往下传,经由 AudioFlinger 启动 MixThread 或 DirectThread 等,将多个 APP 的声音混合到一起,将声音传输到 hal 层。系统会根据音频流类型 stream 和音频策略 strategy 来选择对应的 output,从而找到对应的 module,将音频数据传输给 hal 层音频库 so 做声音相关的处理并传给 audio driver。

音频流传输路径

相关推荐

  1. 【QEMU系统分析实例篇()】

    2023-12-08 14:50:01       9 阅读
  2. 每天一个数据分析题(百八

    2023-12-08 14:50:01       15 阅读
  3. 【QEMU系统分析实例篇()】

    2023-12-08 14:50:01       14 阅读
  4. Android Audio实战——AudioTrack分析六)

    2023-12-08 14:50:01       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 14:50:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 14:50:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 14:50:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 14:50:01       18 阅读

热门阅读

  1. Apache APISIX 体验指南

    2023-12-08 14:50:01       37 阅读
  2. 部署zabbix

    2023-12-08 14:50:01       29 阅读
  3. 云架构的思考3--云上开发

    2023-12-08 14:50:01       36 阅读
  4. Spring Boot 应用安全监控与管理的最佳实践

    2023-12-08 14:50:01       41 阅读
  5. 【盘点世界十大著名黑客攻击事件】

    2023-12-08 14:50:01       31 阅读
  6. Android 开发中 常见的数据结构有哪些?

    2023-12-08 14:50:01       36 阅读