自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 音频基础知识集合

采样率(采样频率)即每秒内进行采样的次数。单位是Hz。采样率越高,数字波形的形状就越接近原始模拟波形,声音的还原就越真实。如44100HZ, 48000HZ等。

2024-07-31 11:15:07 490

原创 Android-添加分区

新增一个分区情况如下, 由于一个磁盘主分区最多只能4个,树莓派刚好用完,增加一个则需要将主分区换位扩展分区,在扩展分区创建逻辑分区。创建一个扩展分区p3,用于创建逻辑分区 (vendor test 三个逻辑分区分别为p5 p6), userdata 主分区 p3。原始树莓派分区 boot system vendor userdata, 全部是主分区。修改脚本后,启动分区 boot 依然使用主分区p1, system使用主分区p2。本文的目标是在Raspberry 4B上添加一个test分区。

2024-07-23 16:00:29 324

原创 Android音频子系统分析-音频流区分处理

这类需求如果在手机平台上实现,会比较复杂,修改的内容也会比较多。手机由于只有一个主扬声器,所以不管是什么类型的声音都从一个地方出来,也不需要这样处理。如果是在车机平台,Android已经考虑到这种情况,只需要修改配置及少量的代码就可以实现。

2024-07-19 17:44:16 313

原创 Android-Overlay机制

Android原生Framework和一些系统App大量的使用了资源文件,如配置config.xml,字符string.xml,布局layout.xml等。我们在定制Android时,往往需要定制其中的一些内容,但又不希望破坏原有的结构,这时候就可以使用Overlay机制。一般用于修改frameworks和packages目录。Overlay有两种方案,静态Overlay和动态Overlay。

2024-07-18 18:37:57 1378

原创 Android音频子系统分析-car_audio_configuration.xml

先附上一个例子,再逐一解释。概括来说,该文件描述了车里有哪些区域,每个区域划分了多少组,每个组包含了哪些设备,每个设备接收哪些类型的音频流。

2024-07-16 15:17:38 273

原创 Android音频子系统-耳机插拔

带着以下几个问题,我们着手分析:Android系统在播放音乐的时候,如果插入耳机,系统会发生什么变化?会产生哪些逻辑?音频是如何从扬声器切换到耳机的?插入3.5mm的耳机孔和usb耳机又有什么不同?

2024-07-10 14:33:20 986

原创 Android音频子系统分析-音量设置

调节音量大小,通常有两种方式:1. 通过硬件调节:放大电流。2. 通过软件调节:调整pcm振幅。这里主要说一下通过软件调节音量的流程,基于Android12。我们知道音频流是通过AudioFlinger处理并输出的,那软件调节的音量设置信息肯定需要传递到AudioFlinger中。Android中调节音量可以通过直接设置音量值的方式,也可以通过音量键进行逐步调节。

2024-07-08 11:15:26 706

原创 Android音频子系统分析-audio_policy_configuration.xml

先附上一个高通的例子,再解释内容。

2024-07-05 14:13:39 879

转载 Android13音频子系统分析-整体架构

目录一、应用API层二、Java框架层三、Native核心层3.1 AudioFlinger模块3.2 AudioPolicyService模块四、HAL层 本文基于AOSP13源码进行分析解读。所以与各个SoC平台厂商提供的运行在真实设备上的源码会有细微差异,但核心原理区别不大。 音频子系统在Android中是一个较为复杂的子系统,横跨应用API层,框架层,Native层和HAL层。使用Java、C++、C语言进行编写。运行在Linux用户空间的

2024-06-26 18:13:05 228

转载 Android中native_handle private_handle_t ANativeWindowBuffer ANativeWindow GraphicBuffer Surface的关系

native_handle/native_handle_t只是定义了一个描述buffer的结构体原型,这个原型是和平台无关的,方便buffer在各个进程之间传递,注意成员data是一个大小为0的数组,这意味着data指向紧挨着numInts后面的一个地址.我们可以把native_handle_t看成是一个纯虚的基类.一般来说,我们描述一块buffer,需要知道它在kernel中对应的fd,虚拟地址/物理地址,offset,size等等信息,后面我们在private_handle_t中就可以看到这些字段.

2024-06-26 18:03:20 37

原创 Android Notification - 灯光提示

先给出问题:Android从O升级到P之后,未接来电无呼吸灯闪烁提示了。处理未接来电的逻辑在platform/package/service/Telecomm里面,有未接来电时,会向系统发送通知,具体代码位置:Telecomm/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java private void s...

2020-04-15 11:24:21 1052

原创 Android 之 AppWidget

之前在项目上碰到了一个问题:刚开机的时候点击主屏幕的全局搜索框没反应,需要等几十秒之后才会正常反应。刚开始猜测是在等待什么初始化条件,但从应用栏里启动全局搜索却很快,因此可以排除这种情况,于是打算从源码层去看看。在launcher里并未找到这个全局搜索的相关代码,因此怀疑这是一个AppWidget,在android代码中全局搜索“android.appwidget.action.AP...

2019-07-25 15:51:20 403

VideoEye 视频实时码流分析软件

VideoEye - 实时、高效、开源的视频分析框架。

2024-07-15

Android 录屏,录音,并通过MediaCodec编码后保存到文件,含全部源码

录屏采用MediaProjection 录音采用AudioRecord 音视频编码采用MediaCodec 保存到容器采用MediaMuxer

2024-04-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除