音频
文章平均质量分 52
dongpingwang
这个作者很懒,什么都没留下…
展开
-
音量压低处理流程
我们在源码中进行全局搜索,应该是在/frameworks/base/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java,我们接着看这个类。通过申请临时DUCK焦点可以压低其他在播放的音源,如源码中的注释,不会暂停其他在播放的音源,而是降低输出,在车载情景下,一般在地图导航或者语音播报的情景下会申请这个焦点。下面流程基于aosp9。原创 2023-08-02 20:30:29 · 319 阅读 · 0 评论 -
AudioFocus申请失败情形
最近在分析问题时,经常看到媒体应用出现申请音频焦点失败,导致状态异常的问题,因此总结一下出现该问题的一些情景。原生设计中,**通话中或者来电时,**申请音频焦点失败,需要关注下。下面是原生系统源码,逻辑比较简单。原创 2023-07-31 17:21:04 · 389 阅读 · 0 评论 -
注册外部的AudioPolicy,监听焦点变化
因此我们试一试可不可以利用这一点,来注册外部的AudioPolicy,进行焦点变化监听。幸运的是可以,并且AudioManager中提供了。在上面分发流程分析中,最终是在MediaFocusControl中进行处理的,在。方法中可以看到在执行焦点栈逻辑时会先执行AudioPolicy相关逻辑,可以通过反射来实现。原创 2023-07-26 16:51:30 · 210 阅读 · 0 评论 -
AudioFocus分发流程
在音视频app开发中一般会遵循音频焦点的机制,播放时申请音频焦点,丢失焦点后暂停播放,恢复焦点后继续播放等。尤其在车载开发时,涉及到三方应用和自研应用,导致经常出现音频焦点混乱混音等问题。整体是一个IPC调用流程,MediaFocusControl中维护了一个焦点栈,当栈数据发生变化时,会分发焦点状态给调用客户端。原创 2023-07-17 15:56:14 · 99 阅读 · 0 评论 -
如何查看声卡、pcm设备以及tinyplay、tinymix、tinycap的使用
只有PCM设备才有这部分,只有c和p两种。c代表capture,说明这是一个提供录音的设备,p代表palyback,说明这是一个提供播放的设备。设备的id,代表这个设备是声卡上的第几个设备。设备的ID只和驱动中配置的DAI link的次序有关。如果驱动没有改变,那么这些ID就是固定的。设备类型,通常只有comtrol/pcm这2种。从上图可以看到声卡会管理很多设备,PCM设备只是其中的一种设备。声卡的id,代表第几块声卡。通常都是0,代表第一块声卡。手机上通常都只有一块声卡。原创 2023-04-26 19:00:36 · 2842 阅读 · 0 评论