- 博客(251)
- 收藏
- 关注
原创 零基础入门多媒体音频(7)-AAOS audio
如果外部声音流是应与 Android 正在生成的声音环境交互的媒体源(例如,当外部调谐器处于开启状态时,停止 MP3 播放),则那些外部声音流应由 Android 应用表示。系统实现可以针对所有 Android 声音使用一个总线端口,在这种情况下,Android 会将所有声音混合在一起,并将混音结果作为一个声音流进行传输。音频 HAL的实现和外部混音器负责确保对保障安全至关重要的外部声音能够被用户听到,而且负责将 Android 提供的声音流进行混音,并将混音结果路由到合适的音响设备。
2024-04-02 10:58:08 1298
原创 零基础入门多媒体音频(6)-alsa(2)
SNDRV_PCM_INFO_MMAP 标志为表示驱动支持MMAP,SNDRV_PCM_INFO_INTERLEAVED 标志位表示支持交织PCM,SNDRV_PCM_INFO_NONINTERLEAVED 表示支持非交织PCM。此外,如果你要使用和hw_param相关的函数,<sound/pcm_params.h>也是必须的。每个声卡驱动的回调函数,这些数据都是制度的。SNDRV_PCM_INFO_PAUSE 和SNDRV_PCM_INFO_RESUME表示PCM支持pause/resume。
2024-04-02 09:36:30 1346
原创 零基础入门多媒体音频(5)-alsa(1)
alsa是音频最重要的框架,没有之一。接下来一个月时间在总结工作知识的主线上。单开个音频支线讲解alsa。说实话,alsa这块我也不是很精通。只在过去的项目中增加 一路substream实现低延时。我打算从下面四个方面去学习alsa。1.alsa官网。网址如下,大家也可以学习后在评论里 交流,互相进步。如果想偷懒也可以直接看我的总结。2.阅读在工作项目中alsa的源码。3.整理网上各类免费的alsa资源。4.向开发驱动的同事沟通请教。
2024-03-25 22:14:41 412
原创 零基础入门多媒体音频(5)-aidl通信
从机制的角度来看,Binder在Android中起到了一种桥梁的作用,使得进程之间可以建立起通信管道,在需要的时候进行数据交换和消息传递。它允许一个进程调用另一个进程中的方法,就像调用本地方法一样,这使得应用程序可以在不同的进程之间共享功能和服务。然后,在客户端,开发者可以使用这些接口来调用服务端的方法,实现跨进程通信。总的来说,Binder是Android系统中实现进程间通信的重要机制,它为开发者提供了方便而强大的工具,使得不同进程之间的通信和数据共享变得简单而高效。
2024-03-22 09:38:19 422
原创 零基础入门多媒体音频(4)-GENIVIProjectAudioManager总览
共包含三部分,command(项目软件与项目以外的软件的信息传递,调用传递),control(音频功能的核心决策层,负责业务逻辑的处理),routing(音频业务的具体执行者)。它能够识别和管理多种音频源,如收音机、CD播放器、蓝牙设备、USB接口等,并根据用户的选择或系统的设定,将音频信号传输到相应的音响设备,如扬声器、耳机等。此外,AudioManager还具备音频信号处理的能力,可以对音频信号进行放大、均衡、混响等处理,以提升音频的音质和听感。这两者都实现了将音频系统状态的变化传递给系统的关注者。
2024-03-20 15:42:59 394
原创 零基础入门多媒体音频(3)-面试总结
面试过程中,如果面试官有过类似的开发经历,问题会问的很深入。其次面试官会挑简历中音频比较热点的话题,比如延时,性能,音质,差异化特性。近期参与公司面试10人+,总结一些常用的问题以及要点。5.介绍一下产品的音频架构,由哪些模块组成?负责的功能分别是什么?1.android音频的音量调节过程是怎么样的?7.android音频的焦点实现逻辑是怎么样的?4.有做过音频通路延时优化相关的工作吗?6.怎么在alsa里面添加一路device?3.alsa包含哪些模块?2.说一下蓝牙音频通路的建立过程。
2024-03-17 16:29:58 399
原创 零基础入门多媒体音频(2)-音频焦点2
说实话,android的代码是越来越难以阅读。继上篇简要介绍音频焦点的文章,这篇文章的主要内容是分析audiofocus的实现。audiofocus实现的核心代码是在project_dir/frameworks/base/services/core/java/com/android/server/audio/MediaFocusControl.java。2.android当系统进入铃声或者通话状态,会静音住媒体播放器,代码片段如下,mRingOrCallActive变量会在应用申请焦点时进行判断刷新。
2024-03-15 17:17:25 681
原创 零基础入门多媒体音频(2)-音频焦点
当音频焦点发生变化时(例如,其他应用程序请求或放弃焦点),系统会调用监听器的相应方法,通知应用程序焦点状态的变化。AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE:这是另一种暂时性的音频焦点,但它在获得焦点时,不希望系统播放任何其他音频。当应用程序获得这种焦点时,它表示该应用程序获得了短暂的音频焦点,可以播放短暂的音频,例如提示音或导航指示音。当应用程序获得这种焦点时,它表示该应用程序获得了独占性的音频焦点,可以播放长时间的音频,例如音乐播放器。与获得焦点对应的是失去对应焦点。
2024-03-15 12:17:37 628
原创 工作能力特长归纳总结
主要方向是Android方面的开发工作。优势:1.全栈开发能力,从应用到驱动。2.项目匹配,工程管理意识3.一线客户交付能力4.代码架构规范意识5.跨领域分析处理能力劣势:1.八股文类基础知识2.网络通信安全缺乏实践...
2021-11-25 10:13:05 1799
原创 评审代码的标准
1,基本编码规范2.整个模块,函数的风格是否一致(多人参与,多时间段开发项目)3.代码内容(命名)是否有歧义,会让人费解4.代码层次是否对5.以下场景是否有说明。a.与其他模块联动b.非常见场景...
2021-09-09 15:17:58 210
原创 2021-08-30(思维和互联网)
学习之道人脑两种思维模式:1.专注思维(注意力集中在某个维度)2.发散思维(泛读全文)脑子就像肌肉,需要松弛把注意里集中在事情的过程中,不要去想后果,考虑当下怎么做一个专门的空间有利于提高学习效率需求是创造出来的,用户在见到产品之前是不知道自己想要的。考虑任何一条线路的时候,都要记住同级别的其它线路。为自己代言:要推销自己脱颖而出,不能平凡无奇自信和个人特色做生意实际是社交幽默突出优势企业文化和精神官僚主义成长性思维,克服恐惧与懒惰兼容并蓄,和而不同技术,产品,用户体验
2021-08-30 17:14:54 57
原创 2021-08-28(算法记忆口诀)
双态子集用状压 (2进制)积沙成塔是动归(分割)构造问题反向推(反向)弗洛伊德点间距情况少分类讨论(分类)双龙戏珠加维度(加维)矩阵分行来处理(降维)
2021-08-28 10:48:18 539
原创 2021-8-25(剪枝)
剪枝:当前处在第N步,最值问题,考虑N-1步的最值固定约束问题,考虑前N-1步是否确定当前的值按照顺序搜索往往能获得意想不到的效果数字的低位到高位二维矩阵的顶行到底行
2021-08-25 11:09:00 48
原创 2021-8-25(精进)
要解决的问题:1.没效果2.时间不够,动力不足角度:时间,选择,行动,学习,思维,才能,成功远期未来:冲突 逃避近期未来:收益半衰期很短的事情,游戏,吃东西等,短时逾越。读书,锻炼 ------>对人生长期有利迁移能力比较相似和差异建立模式努力本身也是一种才能错误的思维认知深度学习事情越多效率不一定越高专注眼前的问题,不要去想未来,强制自己聚焦 处理眼下的问题。满意原则而不是最优原则观念束缚赛
2021-08-25 10:08:37 40
原创 2021-8-23(自控力)
生活中需要解决的问题?1.做事拖延 2.情绪失控 3.冲动消费这些问题都和意志力有关,什么是意志力?意志力:控制自己,注意力,情绪,欲望的能力意志力来自于前额叶皮质: 左侧 前 右侧意志力有三种: 我要做(完成困难的事),我不要(克制一时冲动),我想要(明确目标)意志力需要身体状态的配合面对生死攸关威胁(老虎,生命的威胁)-
2021-08-23 20:21:24 44
原创 线段树以及跳表的思考
线段树和跳表,都是分层管理设计的代表。基础是,区间的特征是可以通过元素代表,线段树是最大or最小or摩尔投票特征,跳表则是区间的最大和最小值。本质都是空间换取时间。
2021-08-23 15:06:39 261
原创 2021-08-19(大数据思维)
大数据容易发现事物的相关性大数据的来源:数据化每个事物都具有一些特征1.文字->数据(电子书)2.方位->数据(GPS)3.沟通->数据(Facebook)量化的数据会越来越多数据的二次利用数据的价值可以反复发掘,数据的使用不是一次性的如何释放数据的潜在价值数据的重组数据废气大数据的价值主要体现在商业领域数据本身数据技术数据思维个人隐私保护问题自由 大数据可以做出很高的预测数据滥用...
2021-08-19 23:34:09 193
原创 2021-08-19(心智模式)
心智猪 ? 提示 or 脏话酒鬼父亲 (没有背景) ? 选择放弃 or 自我努力 ----> 我的命运我做主钱和幸福成抛物线关系 ------> 钱越多越快乐(错误)探索未知(冒险) 兴趣来自过程。恐惧失败导致不敢尝试,通过没兴趣掩饰自己的退缩。不要计算沉默成本,事情已经发生,考虑发生以后的策略。不要背负极高的负担安全感提升1.小范围冒险2.丢掉容易获得安全感的事物3.把恐惧的事情记录4.成功日志5.直面恐惧害怕损失的人损失越大
2021-08-19 16:52:19 59
原创 2021-08-18
.社会观念束缚.金融知识的欠缺.恐惧和贪婪的情绪控制.财商培养的欠缺(导致原因2)认清自己的财务状况明确自己的财务目标懒惰(逃避也是懒惰)和自负(自我和无知)也是可怕的陋习思想和知识的束缚会限制进步(欧洲的中世纪,明清的闭关锁国)文艺复兴反对教会新教动摇教会的通知近代科学中国大一统欧洲君主权力弱,宗教约束被突破...
2021-08-18 11:06:30 28
原创 2021-08-14
做题不是目的,只是为了发现一些规律以及应用规律。题目为什么会具有规律呢?设计题目的人为了让题目能解决,可能不自觉就让题目具有了规律。或者说自然本身就是一个有规律的构成。最基本的两类情况步骤分解构成分解...
2021-08-14 16:18:43 53
原创 2021-8-13
代码晦涩难懂的常见原因:1.代码编写时的疏忽2.项目要求或者某些规则的束缚代码晦涩难懂的副作用:1.交接成本高2.时间拉长来看,即使是原始的工程师也不容易看懂
2021-08-13 10:16:24 55
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人