当前位置: 首页 > news >正文

Android OpenMAX - 开篇

Android Media是一块非常庞大的内容,上到APP的书写,中到播放器的实现、封装格式的了解,下到OMX IL层的实现、Decoder的封装,每一块都需要我们下很大的功夫学习。除此之外,我们还要对一些相关的模块进行了解,比如AudioFlinger、SurfaceFlinger等,他们与Media相关交织共同构建了Android多媒体平台。

面对如此多的模块,我们的学习就成了困难,网上很多资料、博文都是按照调用的顺序一层一层向下解析,随着调用层次的深入读者很容易就找不到方向了。我是谁?我在哪儿?可能这是新手最大的疑问了。

在之前的笔记《Android Media OpenMax》中,我希望可以将APP -> Player -> MediaCodec/ACodec -> OpenMAX串起来学习,并且不能只停留在调用层级的学习,要深入了解作者意图。回过头来再审视写过的内容,还有很多地方写的不够好:

  1. 看过之前笔记的朋友会知道,我会提出很多疑问,并且揣摩代码意图。其实揣摩的行为就是对框架了解的不够深入,对设计模式了解的太少,再回过头来看之前的笔记,很多内容还局限在细节的实现,阅读之后还有一种身在山中的感觉。所以,我需要把阅读视角放的更高,从框架设计的角度学习,做到识得庐山真面目;
  2. 之前的笔记仍然使用了层级调用的学习方式,前后依赖比较严重,接下来我将以模块为单位进行学习,自下往上剖析各个模块,了解他们的实现方式;
  3. 实现一个播放器需要有Source、Decoder、Render、Controller四大组件,除了了解他们的内部实现外,还要重点了解他们是如何连接组成一个高性能播放器的,让我们自己实现应该怎么做呢?如何扩展更多的功能呢?
  4. 其他…

如何快速入门Android Media?

  • 对于只要使用API的朋友来说,阅读文档是最快的方法。但是对于要做Media Framework开发或者是OpenMAX IL层开发的朋友来说只能多多阅读,多多揣摩了。

虽然OpenMAX在Android上已经过时了,但是它所包含的设计思想依然值得学习,对我们后续的Codec2.0学习也会有所帮助。本系列文章会分为三部分:

  1. OpenMAX框架深入剖析;
  2. ACodec是如何串接OpenMAX;
  3. MediaCodec是如何对接编解码组件;

bug来来往往,需求络绎不绝,还在手足无措吗,加入我们,站在山巅横扫它们!

本系列文章依旧会基于Android 13代码。

http://www.lryc.cn/news/326441.html

相关文章:

  • ubuntu开启ssh服务
  • 测试缺陷定位的基本方法
  • 【数字图像处理matlab系列】数组索引
  • 【2024系统架构设计】案例分析- 3 数据库
  • vue基础——java程序员版(总集)
  • Rancher(v2.6.3)——Rancher配置Harbor镜像仓库
  • C++类和对象、面向对象编程 (OOP)
  • Introduction to Data Mining 数据挖掘
  • 常用的 Git 命令
  • jackson:JSON字符串(String)类型的成员序列化和反序列化
  • 使用docker的好处???(docker的优势)
  • Google AI 肺癌筛查的计算机辅助诊断
  • 【字符串算法题记录】反转字符串中的单词(leetcode),右旋字符串(kama)——双指针以及反转的奇思妙用
  • 基于springboot+vue调用百度ai实现车牌号识别功能
  • 【NTN 卫星通信】 TN和多NTN配合的应用场景
  • 健康餐饮必备!油烟净化器超强洁净餐饮环境
  • Redis修改开源协议,6大备胎重见天日
  • 使用python读取csv文件快速插入postgres数据库
  • 【python地图添加指北针和比例尺】
  • VUE3——Proxy API 与VUE2——defineProperty API区别
  • 卷积神经网络(CNN):图像识别的强大工具
  • 【Java多线程】1——多线程知识回顾
  • 音视频处理 - 音频概念详解,码率,采样率,位深度,声道,编码
  • 【PLC】PROFIBUS(二):总线协议DP、PA、FMS
  • Mysql配置autocommit实际使用(慎用)
  • Mac电脑高清媒体播放器:Movist Pro for mac下载
  • Linux 网站定时备份+滚动删除脚本:文件、数据库(命令篇)
  • Cache缓存:HTTP缓存策略解析
  • 智慧公厕的全域感知、全网协同、全业务融合和全场景智慧赋能
  • Day44:WEB攻防-PHP应用SQL盲注布尔回显延时判断报错处理增删改查方式