
Android Audio
Audio
小馋喵星人
这个作者很懒,什么都没留下…
展开
-
华为HiCar投屏音频卡顿问题分析—抓取wifi tcpdump及 sniffer log 步骤
注意: 由于需要在同一台电脑同时连接adb 抓取log,附件中所有脚本的 adb device serial number 需要更新为对应的号。示例如下:ciellee@sh:~/Videos$ adb devicesList of devices attached9c2d9ab5device ---------------> 车机5T7HGD199A038896device ---------------> 手机所有车机脚本adb原创 2020-06-22 18:32:13 · 6788 阅读 · 0 评论 -
Android Audio Debug相关方法
Audio的FW和HAL层dump PCM数据(非offload的场景,对应offload,dump出来的还是原数据)1.抓取Systrace <1>怎么加参考:frameworks/av/services/audioflinger/Threads.cpp #define ATRACE_TAG ATRACE_TAG_AUDIO ATRACE_BEGIN("w...转载 2019-11-25 11:14:22 · 2139 阅读 · 0 评论 -
理解 Audio 音频系统六 之 Audio音乐播放器编写 及 MediaPlayer 实例化代码分析
理解 Audio 音频系统六 之 Audio音乐播放器编写六、Audio音乐播放器编写6.1 音乐播放器APK编写6.1.1 APK 界面 xml 文件代码6.1.2 APK Java 文件代码6.1.3 APK 实测结果6.2 MediaPlay 播放流程代码分析6.2.1 MediaPlayer 实例化代码分析6.2.2 setDataSource() 代码分析6.2.3 prepare() ...原创 2019-11-11 17:21:01 · 1187 阅读 · 0 评论 -
理解 Audio 音频系统三 之 [2] AudioFlinger --- AudioThread
理解 Audio 音频系统三 之 [2] AudioFlinger 三、AudioFlinger6. AudioFlinger 目录介绍本文接着前面的《理解 Audio 音频系统三 之 [1] AudioFlinger 启动流程 及 Audio PatchPanel初始化》 继续写。在前面的文章中,我们主要是根据AudioFlinger 启动流程,重点分析了下 Audio PatchPane...原创 2019-10-17 11:45:02 · 5083 阅读 · 0 评论 -
理解 Audio 音频系统三 之 [1] AudioFlinger 启动流程 及 Audio PatchPanel初始化
理解 Audio 音频系统三 之 AudioFlinger三、AudioFlinger1. AudioFlinger 的启动2. AudioFlinger 构造函数断断续续写了好多天,终于把《理解 Audio 音频系统二 之 audioserver & AudioPolicyService》 写好了,文章完全是作为自已的学习笔记来用的,因为刚开始学习,知识还没有形成体系结构,所以其...原创 2019-10-12 18:17:38 · 7463 阅读 · 3 评论 -
理解 Audio 音频系统二 之 audioserver & AudioPolicyService
理解 Audio 音频系统二 之 AudioPolicyService二、audioserver & AudioPolicyService1. AudioPolicyService 的启动流程1.1 main_audioserver.cpp参考资料二、audioserver & AudioPolicyService我们知道,在 Audio系统中,核心的两块是 AudioPol...原创 2019-10-03 12:32:26 · 12992 阅读 · 5 评论 -
理解 Audio 音频系统 一 之 Audio 学习思路
理解 Audio 音频系统 一 之 Audio Policy一、学习思路介绍前面学习了,也转载了挺多大神写的 Audio 文章,学习了比较久,但看别人的文章终究学习的还是别人的思想,终究还只是看懂了,估计不久后马上也会忘记,所以一定要自已进入代码,一句一句代码的学习分析,结合代码,结合自已的理解,如果自已能够写出一篇文章来,才能说明真正懂了。本文也是一个边学边写的过程,加油!一、学...原创 2019-10-01 18:50:44 · 4739 阅读 · 8 评论 -
Audio System 九 之 AudioTrack
Audio System 九 之 AudioTrack十四、AudioTrack & AudioFlinger 相关类14.1 AudioTrack & AudioFlinger 的类图14.1.1 AudioFlinger::PlaybackThread 回放线程基类14.1.2 AudioFlinger::PlaybackThread::Track 音频流管理类14.1....转载 2019-10-01 17:44:14 · 1158 阅读 · 0 评论 -
Audio System 八 之 AudioPolicyService
Audio System 七 之 AudioPolicyService十三、深入剖析Android音频之AudioPolicyService13.1 创建AudioCommandThread线程13.2 创建AudioPolicyClient、 AudioPolicyManager13.3 创建AudioPolicyManager()13.3.1 加载audio_policy_configu...转载 2019-10-01 12:30:27 · 1878 阅读 · 0 评论 -
Audio System 七 之 AudioFlinger
Audio System 七 之 AudioFlinger十二、深入剖析Android音频之AudioFlinger12.1 总体框架12.2 AudioFlinger12.2.1 AudioFlinger 服务的启动 和 运行12.2.2 音频设备的管理12.2.2.1 加载设备loadHwModule()12.2.2.2 打开音频输出通道openOutput()12.2.2.2.1 查找合适...转载 2019-09-30 18:06:47 · 1762 阅读 · 0 评论 -
Audio System 六 之 tinyplay playback、capture
Audio System 六 之 tinyplay playback、capture十一、tinyplay playback、capture11.1 tinyplay11.1.1 使用耳机播放11.2 tinyplay capture11.2.1 使用音频录制十一、tinyplay playback、capture11.1 tinyplay由时序图可知:主要涉及pcm_open()、pc...转载 2019-09-30 17:15:02 · 1991 阅读 · 0 评论 -
Audio System 五 之 DAPM分析
Audio System 五 之 DAPM分析十、DAPM分析10.1 DAPM简介10.2 kcontrol10.2.1 简单型的控件10.2.1.1 SOC_SINGLE10.2.1.2 SOC_SINGLE_TLV SOC_SINGLE_TLV10.2.1.2 SOC_DOUBLE10.2.1.3 SOC_DOUBLE_R10.2.1.4 SOC_DOUBLE_TLV10.2.1.5 ...转载 2019-09-30 16:46:27 · 1926 阅读 · 0 评论 -
Audio System 四 之声卡和PCM设备建立过程
Audio System 四 之声卡和PCM设备建立过程九、声卡和PCM设备建立过程9.1 声卡设备9.1.1 声卡结构概述9.1.2 声卡的创建snd_card_create()9.1.3 逻辑设备的创建9.1.4 声卡的注册前面几章分析了 Codec、Platform、Machine 驱动的组成部分及其注册过程,这三者都是物理设备相关的,大家应该对音频物理链路有了一定的认知。接着分析音频...转载 2019-09-30 09:52:25 · 1884 阅读 · 0 评论 -
Audio System 三 之 Linux ALSA音频系统分析
Audio System 三 之 Linux ALSA音频系统分析User space audio code 代码路径Kernel space audio code 代码路径三、Linux ALSA 音频系统架构3.1 Platform3.2 Codec3.3 Machine3.3.1 dai_link3.3.2 hw constraints四、ASoC Core4.1ASoC Codec Dri...转载 2019-09-29 17:56:19 · 5561 阅读 · 0 评论 -
Audio System 二 之 Audio系统框架
Audio System 二 之 Audio系统框架二、Linux Audio系统框架2.1 Application 层2.2 Framework 层2.3 Libraries 层2.4 HAL 层2.5 Tinyalsa 层2.6 Kernel部分2.7 Audio Devices 部分三、Qualcomm 平台 - Audio系统框架3.1 Qualcomm Audio系统总体...转载 2019-09-29 14:36:19 · 5712 阅读 · 4 评论 -
Audio System 一 之 Audio 系统框架
Audio System 一 之 音频基础知识一、音频基础知识声音有哪些重要属性呢?Google Pixel、Pixel XL 内核代码(Kernel-3.18):Kernel source for Pixel and Pixel XL - GitHubAOSP 源码(Android 7.1.2):Android 系统全套源代码分享 (更新到 8.1.0_r1)一、音频基础知识理解音频...转载 2019-09-29 13:30:19 · 3404 阅读 · 0 评论 -
【Android Audio 入门 七】声卡的创建
【Android Audio 入门 七】声卡的创建七、声卡的创建7.1 Struct snd_card7.2 声卡的建立流程Step 1:创建一个 snd_card 实例Step 2:创建声卡的芯片专用数据Step 3:设置Driver 的ID 和名字网上看到一篇写的不错的文章,我就不重新写了,在他基础上来增加我的想法就好了。欢迎前去看原文 https://blog.youkuaiyun.com/Dr...转载 2019-09-24 16:48:43 · 1883 阅读 · 0 评论 -
【DAPDM 六】--- Complete Path 对 Codec Suspend的影响
【DAPDM 六】--- Complete Path 对 Codec Suspend的影响六、Complete Path 对 Codec Suspend的影响六、Complete Path 对 Codec Suspend的影响在stream domain触发过程分析里面提及过:Linux-3.4.5时代,只要dapm模块发现codec内部还打开一条complete path,那么系统休眠/...转载 2019-09-24 09:44:36 · 555 阅读 · 0 评论 -
【DAPDM 五】--- Stream Domain 触发过程
【DAPDM 五】--- Stream Domain 触发过程五、Stream Domain 触发过程5.1 stream domain5.2 stream domain触发流程5.3 源码分析5.3.1 soc_dapm_stream_event()5.3.2 dapm_power_widgets()5.3.3 dapm_seq_run()5.3.4 dapm_seq_run_coalesced...转载 2019-09-23 17:55:31 · 602 阅读 · 0 评论 -
【DAPDM 四】--- dapm机制深入分析(下篇)
【DAPDM 四】--- dapm机制深入分析(下篇)四、dapm机制深入分析4.2 dapm触发依据4.3 dapm_power_widgets()4.4 dapm_seq_run()四、dapm机制深入分析dapm触发时的入口函数是dapm_power_widgets,稍后详细分析这个函数,这里仅说其作用:检查每个dapm widget,如果该widget处在一条complete p...转载 2019-09-23 14:53:39 · 633 阅读 · 0 评论 -
【DAPDM 四】--- dapm机制深入分析(上篇)
【DAPDM 四】--- dapm机制深入分析四、dapm机制深入分析4.1 DAPM 模块重要函数哲学里有三个终极命题:你是谁?从何处来?到何处去?而对于dapm机制,我们可以这样提问:dapm是什么,起到何作用?dapm是如何建立的?dapm又是如何触发的?下面会就这三个问题进行分析。首先是dapm是什么?这在《【DAPDM 一】— DAPM 动态音频电源管理 》中提及了,就是音频...转载 2019-09-23 11:49:50 · 1057 阅读 · 0 评论 -
【DAPDM 三】--- Audio paths 与 asound.conf
【DAPDM 三】--- Audio paths 与 asound.conf三、Audio paths 与 asound.conf3.1 认识 asound.conf 和 .asoundrc3.1.1 创建声卡别名(虚拟声卡)3.1.2 创建一个虚拟子设备3.2 配置 audio path3.3 示范配置通过配置好asound.conf,上层则可打开asound.conf中定义的虚拟设备,而自...转载 2019-09-23 11:24:12 · 1088 阅读 · 0 评论 -
【DAPDM 二】--- Audio paths 与 DAPM Kcontrol
【DAPDM 二】--- Audio paths 与 DAPM Kcontrol二、Audio paths 与 DAPM Kcontrol2.1 Audio Paths Overview2.2 配置声音通路2.3 Audio Paths 代码实现2.3.1 实现 Left Output Mixer 的输入源选择2.3.2 添加名为Left Output Mixer的widget2.3.3 搭建音频...转载 2019-09-22 23:12:47 · 892 阅读 · 0 评论 -
【DAPDM 一】--- DAPM 动态音频电源管理
【Android Audio 入门 七】--- DAPM 动态音频电源管理七、DAPM 动态音频电源管理7.1 dapm.txt7.1.1 DAPM 控件7.1.2 流组件 Stream Doamin Widgets7.1.3 路径组件 Path Doamin Widgets7.1.4 machine组件 machine Doamin Widgets7.1.5 codec组件 codec Doam...原创 2019-09-22 18:35:31 · 1248 阅读 · 0 评论 -
【Android Audio 入门 六】Audio 结构体分析---待后续更新
【Android Audio 入门 六】Codec分析六、Codec 分析6.1 Codec 相关结构体分析6.1.1 struce snd_soc_dai 结构体6.1.2 struct snd_soc_dai_driver 驱动 结构体6.1.2.1 struct snd_soc_dai_ops 硬件参数 结构体6.1.2.2 struct snd_soc_pcm_stream 软件参数 结构...原创 2019-09-21 16:21:12 · 1837 阅读 · 0 评论 -
【Android Audio 入门 五】--- AudioSW介绍
【Android Audio 入门 五】--- AudioSW介绍五、AudioSW介绍5.1 Audio SW 的作用5.2 Android Audio SW Architecture5.3 Voice Audio SW Architecture5.4 Audio Mixer五、AudioSW介绍5.1 Audio SW 的作用简单来说, Audio SW 只要做好两件事:管理好整...原创 2019-09-19 23:23:18 · 3976 阅读 · 2 评论 -
【Android Audio 入门 四】--- AFE 介绍
【Audio System 四】--- AFE 介绍四、AFE 介绍4.1 AFE 硬件介绍四、AFE 介绍AFE 全称 Audio Front End,音频前端后端AFE的重要模块包括:(1)AFE Speaker / MIC ---- 开关控制, 打开/关闭(2)Volume Control ---- 音量控制,Analog Volume, Digital Volume(...原创 2019-09-19 18:03:35 · 9284 阅读 · 1 评论 -
【Android Audio 入门 三】--- KControl 介绍
【Audio System 三】--- KControl 介始三、KControl 介始3.1 如何调用kcontrol ( /dev/snd/controlC%u )3.2 IOCTL,snd_ctl_ioctl() 函数介绍3.3 SNDRV_CTL_IOCTL_ELEM_LIST 获得所有kcontrl列表接着前面我们写的文章《【Audio System 二】— /dev/snd下的p...原创 2019-09-19 15:16:00 · 3881 阅读 · 1 评论 -
【Android Audio 入门 二】--- /dev/snd下的pcm节点 创建 及 open 过程代码分析
/dev/snd下的pcm节点 创建 及 open 过程代码分析二、audio 节点 介绍1. /dev/snd下的pcm设备节点介绍2. /dev/snd下的pcm设备节点 创建过程分析2.1 CONFIG_SND_MAJOR 主设备号 1162.2 snd_minors 数组分析2.3 pcm设备节点创建代码2.4 pcm设备节点创建open 过程分析2.5 pcm设备节点 fi...原创 2019-09-18 23:17:18 · 11102 阅读 · 2 评论 -
【Android Audio 入门 一】--- Audio ALSA Driver
【Audio System 01】--- Audio Driver一、 ALSA 音频体系介绍1. ASoC介绍(Machine 、Platform 和 Codec)2. AFE介绍(Audio Front-End 前端后端)3. snd_soc_dai_link (Platform 和 Codec 联系在一起的结构体)一、 ALSA 音频体系介绍ALSA 是 Advanced Linux ...原创 2019-09-18 11:50:26 · 8326 阅读 · 5 评论 -
AudioTrack学习资料
Android 音频系统散记之一: A2dpAudio Interface && Android Audio Systemhttp://www.360doc.com/content/14/0312/11/15700426_359820083.shtml音频 (一) AudioRecord 架构简介https://blog.youkuaiyun.com/pashanhu6402/artic...原创 2019-09-03 15:06:31 · 989 阅读 · 0 评论 -
音频播放AudioTrack之入门篇
音频播放AudioTrack之入门篇音频播放AudioTrack作用AudioTrack实现PCM音频播放1. 配置基本参数StreamType音频流类型MODE模式(static和stream两种)最小缓冲区大小2. 创建AudioTrack对象3. 获取PCM文件,转成DataInputStream4. 开启/停止播放总结音频播放音频播放声音分为MediaPlayer和AudioTrac...转载 2019-09-03 14:29:43 · 1891 阅读 · 0 评论 -
Android 音频系统(三)之 AudioTrack实例
接着前面的《Android 音频系统(二)之 AudioFlinger》4. AudioTrack 实例创建现在我们开始分析 AudioTrack 的创建过程,特别留意 AudioTrack 与 AudioFlinger 如何建立联系、用于 AudioTrack 与 AudioFlinger 交换数据的匿名共享内存如何分配。4.1. AudioTrack & AudioFlinge...转载 2019-03-24 15:21:37 · 1558 阅读 · 0 评论 -
Android 音频系统(二)之 AudioFlinger
3. AudioFlinger 概述AudioPolicyService 与 AudioFlinger 是 Android 音频系统的两大基本服务。AudioPolicyService 是音频系统策略的制定者,负责音频设备切换的策略抉择、音量调节策略等;AudioFlinger 是音频系统策略的执行者,负责音频流设备的管理及音频流数据的处理传输,所以 AudioFlinger 也被认为是 ...转载 2019-03-24 15:18:02 · 4622 阅读 · 0 评论 -
Android 音频框架概述(一)之 AudioTrack
1. Android 音频框架概述Audio 是整个 Android 平台非常重要的一个组成部分,负责音频数据的采集和输出、音频流的控制、音频设备的管理、音量调节等,主要包括如下部分:Audio Application Framework:音频应用框架AudioTrack:负责回放数据的输出,属 Android 应用框架 API 类AudioRecord:负责录音数据的采集,属 Andr...转载 2019-03-23 18:07:11 · 6538 阅读 · 0 评论