Android Media Framework - 开篇
前言
Android Media是一块非常庞大的内容,上到APP的书写,中到播放器的实现、封装格式的了解,下到编解码组件的封装、VPU API的了解,每块内容的学习都需要我们下很大的功夫。此外,我们还要对相关的模块进行了解,比如AudioFlinger、SurfaceFlinger等,他们与Media相关交织共同构建了Android多媒体平台。
音视频开发的知识本就繁杂细碎,这些内容融入到Android框架中,对于初学者而言又复杂了些许。网上已经有很多优秀的文章解析了Android Media框架,笔者阅读这些文章收获了许多,但同样也有许多问题得不到解决。“纸上得来终觉浅,绝知此事要躬行”,笔者决定系统地学习Android Media框架,从去年开始潦草记录了几十篇学习笔记,学习过程中碰到了许许多多的问题,思考过后对Android Media框架也有了新的认识,再回过头来看,很多内容依旧是一知半解,很多理解也是“自以为是”。深思熟虑后,笔者决定重新思考整理,从全新的角度切入,力求能够更系统、更深入地理解Android Media框架,同时也会把思考以文章的形式整理出来,放在网上供读者参考。由于笔者水平有限,文章中难免存在错误,也请读者在顺着文章思路阅读的过程中保持审慎思考,如有错误欢迎指出。
在之前的学习中,笔者的想法是从Framework API开始学习,按照调用的顺序一层一层向下揭开框架的面纱。但是在实际的学习过程中,笔者发现上层实现是紧紧依赖下层实现的,不理解下层就很难通透地理解上层。为了学地通体透亮,笔者这次将从底层开始解析,一层一层向外包裹,直至延伸到最外层的API。
内容安排

Android Media框架有非常多的模块,笔者将要学习的内容以框架的形式绘制出来,在这个合集中我们将自下而上学习:
Android OpenMAX框架
Android Codec2框架
MediaCodec
NuPlayer
MediaExtractor Service
MediaPlayerService
MediaPlayer API
以上是精简的模块,我们要学习的远远不止上述内容,该合集将会包括例如OpenMAX框架会包含spec阅读、OMX IL Component实现,OMX IL Core实现、OMX IL Client等等,Codec2框架解析同样包含很多内容。由于内容多且广,工作繁忙,文章不会更新太快,尽量做到每篇文章都有所可读!
最后还要再强调一下,由于笔者水平有限,文章中如存在错误,也请读者不吝赐教。
Android Media Framework - 开篇的更多相关文章
- Android Media (Audio) Framework 多媒体系统框架
http://blog.csdn.net/lskshz/article/details/17264113 原址:http://blog.csdn.net/myzhzygh/article/detail ...
- Android media媒体库分析之:MediaProvider
在做Android媒体应用程序时(Audio.Image.Video)需要对Android的媒体提供者(MediaProvider)做详细的分析,下面记录一下我的收获: 一.获取MediaProvid ...
- Caused by:java.lang.IllegalStateException at android.media.MediaPlayer._setDataSource(Native Method)
使用Mediaplayer播放本地音频,在第二次调用mediaplayer.setDataSource()时报错如下: Caused by: java.lang.IllegalStateExcepti ...
- I.MX6 GPS Android HAL Framework 调试
I.MX6 GPS Android HAL Framework 调试 一.参考文章: android4. GPS定位问题 http://blog.csdn.net/bzw073/article/det ...
- Atitit. 软件---多媒体区---- jmf 2.1.1 Java Media Framework 支持的格式
Atitit. 软件---多媒体区---- jmf 2.1.1 Java Media Framework 支持的格式 JMF,全名为Java Media Framework,它可以在java appl ...
- Android application testing with the Android test framework
目录(?)[-] Android automated testing 1 How to test Android applications Tip 2 Unit tests vs functional ...
- Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19【转】
本文转载自:http://blog.csdn.net/netwalk/article/details/17686993 Error处理: android.media.MediaRecorder.sta ...
- 错误:Camera录制视频(6.0错误),5.1正常,7.1正常 (java.lang.RuntimeException: start failed.at android.media.MediaRecorder.native_start(Native Method))
Process: com.example.mycamera2, PID: 24086 java.lang.RuntimeException: start failed. at android.medi ...
- Android 添加framework资源包
为Android系统添加一个新的资源包 概述 传统的Android系统只有一个framework-res.apk资源包,第三方厂商在进行rom定制时会直接修改framework res资源,达到适配目 ...
- android 修改framework下资源文件后如何编译
在framework/base/core/res/res 下添加资源文件后需要先编译资源 然后编译framework 才可正常引用 进入项目根目录 cd frameworks/base/core/re ...
随机推荐
- Spring6
0x00 环境配置 环境: IDEA >= 2022.1.4 JDK 17 Maven 3.8.6 Spring 6.0.0 JUnit 4.13.2 Log4j2 新建模块 spring001 ...
- Flutter笔记-基础组件
图片和Icon 加载网络图片以及本地图片 Image( image: NetworkImage( "https://img-s-msn-com.akamaized.net/tenant/am ...
- EasyCV DataHub 提供多领域视觉数据集下载,助力模型生产
简介: 在人工智能广泛应用的今天,深度学习技术已经在各行各业起到了重要的作用.在计算机视觉领域,深度学习技术在大多数场景已经替代了传统视觉方法.如果说深度学习是一项重要的生产工具,那么数据就是不可或缺 ...
- 基于EasyCV复现ViTDet:单层特征超越FPN
简介: ViTDet其实是恺明团队MAE和ViT-based Mask R-CNN两个工作的延续.MAE提出了ViT的无监督训练方法,而ViT-based Mask R-CNN给出了用ViT作为bac ...
- 系列解读 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术
简介:本篇以 first contact (通信两端建立首个连接) 场景为例,介绍 SMC-R 通信流程. 文/龙蜥社区高性能网络SIG 一.引言 通过上一篇文章 <系列解读SMC-R:透 ...
- Java编程技巧之样板代码
简介: 在日常编码的过程中,可以总结出很多"样板代码",就像"活字印刷术中的"活字"一样.当我们编写新的代码时,需要用到这些"活字" ...
- Maxcompute造数据-方法详解
简介: 造一点模拟数据的方法 概述 造数据在一些奇怪的场合会被用到.一般我们是先有数据才有基于数据的应用场合,但是反过来如果应用拿到另外一个场景,没有数据功能是没有方法演示的.一般较为真实的数据,脱敏 ...
- 块存储监控与服务压测调优利器-EBS Lens发布
简介:SLS团队联合EBS团队发布了EBS Lens,针对块存储提供数据分析.资源监控的功能,可以帮助用户获取云上块存储资源信息与性能监控数据.提升云上块存储资源的管理效率.高效分析业务波动与资源性 ...
- Serverless 工程实践 | 快速搭建 Kubeless 平台
简介: Kubeless 是基于 Kubernetes 的原生无服务器框架.其允许用户部署少量的代码(函数),而无须担心底层架构. 快速搭建 Kubeless 平台 Kubeless 简介 Kube ...
- [Tools] Kali Linux 高清屏扩大系统字体、BurpSuite、OpenVAS
系统检索 Setting Manager,Appearance -> Settings,选择 Window Scaling:2x Terminal fonts: linux terminal 快 ...