前言

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 - 开篇的更多相关文章

  1. Android Media (Audio) Framework 多媒体系统框架

    http://blog.csdn.net/lskshz/article/details/17264113 原址:http://blog.csdn.net/myzhzygh/article/detail ...

  2. Android media媒体库分析之:MediaProvider

    在做Android媒体应用程序时(Audio.Image.Video)需要对Android的媒体提供者(MediaProvider)做详细的分析,下面记录一下我的收获: 一.获取MediaProvid ...

  3. Caused by:java.lang.IllegalStateException at android.media.MediaPlayer._setDataSource(Native Method)

    使用Mediaplayer播放本地音频,在第二次调用mediaplayer.setDataSource()时报错如下: Caused by: java.lang.IllegalStateExcepti ...

  4. I.MX6 GPS Android HAL Framework 调试

    I.MX6 GPS Android HAL Framework 调试 一.参考文章: android4. GPS定位问题 http://blog.csdn.net/bzw073/article/det ...

  5. Atitit. 软件---多媒体区---- jmf 2.1.1 Java Media Framework 支持的格式

    Atitit. 软件---多媒体区---- jmf 2.1.1 Java Media Framework 支持的格式 JMF,全名为Java Media Framework,它可以在java appl ...

  6. Android application testing with the Android test framework

    目录(?)[-] Android automated testing 1 How to test Android applications Tip 2 Unit tests vs functional ...

  7. Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19【转】

    本文转载自:http://blog.csdn.net/netwalk/article/details/17686993 Error处理: android.media.MediaRecorder.sta ...

  8. 错误: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 ...

  9. Android 添加framework资源包

    为Android系统添加一个新的资源包 概述 传统的Android系统只有一个framework-res.apk资源包,第三方厂商在进行rom定制时会直接修改framework res资源,达到适配目 ...

  10. android 修改framework下资源文件后如何编译

    在framework/base/core/res/res 下添加资源文件后需要先编译资源 然后编译framework 才可正常引用 进入项目根目录 cd frameworks/base/core/re ...

随机推荐

  1. Spring6

    0x00 环境配置 环境: IDEA >= 2022.1.4 JDK 17 Maven 3.8.6 Spring 6.0.0 JUnit 4.13.2 Log4j2 新建模块 spring001 ...

  2. Flutter笔记-基础组件

    图片和Icon 加载网络图片以及本地图片 Image( image: NetworkImage( "https://img-s-msn-com.akamaized.net/tenant/am ...

  3. EasyCV DataHub 提供多领域视觉数据集下载,助力模型生产

    简介: 在人工智能广泛应用的今天,深度学习技术已经在各行各业起到了重要的作用.在计算机视觉领域,深度学习技术在大多数场景已经替代了传统视觉方法.如果说深度学习是一项重要的生产工具,那么数据就是不可或缺 ...

  4. 基于EasyCV复现ViTDet:单层特征超越FPN

    简介: ViTDet其实是恺明团队MAE和ViT-based Mask R-CNN两个工作的延续.MAE提出了ViT的无监督训练方法,而ViT-based Mask R-CNN给出了用ViT作为bac ...

  5. 系列解读 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术

    ​简介:本篇以 first contact (通信两端建立首个连接) 场景为例,介绍 SMC-R 通信流程. ​ 文/龙蜥社区高性能网络SIG 一.引言 通过上一篇文章 <系列解读SMC-R:透 ...

  6. Java编程技巧之样板代码

    简介: 在日常编码的过程中,可以总结出很多"样板代码",就像"活字印刷术中的"活字"一样.当我们编写新的代码时,需要用到这些"活字" ...

  7. Maxcompute造数据-方法详解

    简介: 造一点模拟数据的方法 概述 造数据在一些奇怪的场合会被用到.一般我们是先有数据才有基于数据的应用场合,但是反过来如果应用拿到另外一个场景,没有数据功能是没有方法演示的.一般较为真实的数据,脱敏 ...

  8. 块存储监控与服务压测调优利器-EBS Lens发布

    ​简介:SLS团队联合EBS团队发布了EBS Lens,针对块存储提供数据分析.资源监控的功能,可以帮助用户获取云上块存储资源信息与性能监控数据.提升云上块存储资源的管理效率.高效分析业务波动与资源性 ...

  9. Serverless 工程实践 | 快速搭建 Kubeless 平台

    ​简介: Kubeless 是基于 Kubernetes 的原生无服务器框架.其允许用户部署少量的代码(函数),而无须担心底层架构. 快速搭建 Kubeless 平台 Kubeless 简介 Kube ...

  10. [Tools] Kali Linux 高清屏扩大系统字体、BurpSuite、OpenVAS

    系统检索 Setting Manager,Appearance -> Settings,选择 Window Scaling:2x Terminal fonts: linux terminal 快 ...