Android 13 - Media框架(1)- 总览
关注公众号免费阅读全文,进入音视频开发技术分享群!
为了加深对Android Media框架的理解,决定在这里记录下学习过程中碰到的问题以及一些个人思考。由于本人水平有限,笔记的内容可能会有一些错误,如果看到也恳请指出。
ps. 这里的Media框架指的是Android媒体播放器、音视频编解码相关的内容。
下面是我绘制的简单的Android Media学习内容以及学习目标,主要包含以下几个部分:
- Media API & native wrapper:熟悉media api的调用方式及底层交互方式,熟悉java与native的串接方式,了解声明周期控制(构造与析构)
- MediaServer(media.player):了解媒体服务(binder service)的架构与提供的服务内容
- NuPlayer: 目标了player的实现
- Source & Extractor:了解demux组件与source的实现
- MediaCodec:了解编解码组件接口
- ACodec:了解编解码组件的工作流程
- OMX:了解编解码组件框架 (OpenMax)
- 最终目标:了解FFmpeg,尝试实现我们自己的Player,包含Source、Extractor、Decoder、JNI、JavaAPI五大部分
- CCodec:了解新的编解码组件的工作流程
开始学习前还有一些前备知识需要了解,包括智能指针、异步消息机制、以及binder框架,这三部分穿插于Android Media框架的各个角落,先了解他们会对看代码有些许帮助。我在学习Media框架之前已经提前学习了这部分的内容,也做了一些笔记,这里也贴出来让有需要的同学看看。
对于binder的学习可以不用很深入(我也不太会,笔记记录的乱起八糟),了解如何使用即可。这里也贴一个我的学习demo,比较复杂一点,但是更加贴近实际的使用:
学习过程中贴的代码来自于aospxref.com:
希望能更新到最后!加油!
Android 13 - Media框架(1)- 总览的更多相关文章
- 简析Android 兼容性测试框架CTS使用
一.什么是兼容性测试? 1)为用户提供最好的用户体验,让更多高质量的APP可以顺利的运行在此平台上 2)让程序员能为此平台写更多的高质量的应用程序 3)可以更好的利用Android应用市场 二.CTS ...
- 15 个 Android 通用流行框架大全(转)
1. 缓存 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库 Picas ...
- Android 通用流行框架
原文出处: http://android.jobbole.com/83028/ 1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Andro ...
- 经受时间沉淀的15 个 Android 通用流行框架大全
1. 缓存 名称描述 DiskLruCache: Java实现基于LRU的磁盘缓存 2.图片加载 名称描述 Android Universal Image Loader 一个强大的加载,缓存,展 ...
- Android通用流行框架大全
1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Android Universal Image Loader 一个强大的加载,缓存,展示图 ...
- 60.Android通用流行框架大全
转载:https://segmentfault.com/a/1190000005073746 Android通用流行框架大全 1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的 ...
- 15 个 Android 通用流行框架大全
1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Android Universal Image Loader 一个强大的加载,缓存,展 ...
- Android 通用流行框架大全
1. 缓存 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库 Picas ...
- 玩转Android之数据库框架greenDAO3.0使用指南
用过ActiveAndroid.玩过ORMLite,穿过千山万水,最终还是发现greenDAO好用,ActiveAndroid我之前有一篇文章介绍过 玩转Android之数据库框架ActiveAndr ...
- 15 个 Android 通用流行框架大全(转载)
1. 缓存 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库 Picas ...
随机推荐
- HarmonyOS传感器开发指南
HarmonyOS系统传感器是应用访问底层硬件传感器的一种设备抽象概念.开发者根据传感器提供的Sensor接口,可以查询设备上的传感器,订阅传感器数据,并根据传感器数据定制相应的算法开发各类应用, ...
- C/C++常考习题
1.什么是虚函数?什么是纯虚函数? 虚函数:允许被其子类重新定义的成员函数. 虚函数的声明:virtual returntype func(parameter);引入虚函数的目的是为了动态绑定: 纯虚 ...
- 图像验证码识别,字母数字汉子均可cnn+lstm+ctc
图形验证码如下: 训练两轮时的准确率:上边显示的是未识别的 config_demo.yaml System: GpuMemoryFraction: 0.7 TrainSetPath: 'train/ ...
- 力扣81(java&python)-搜索旋转排序数组 II(中等)
题目: 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 ...
- 【开发者成长】喧哗的背后:Serverless 的挑战
作者 | 许晓斌 阿里云高级技术专家,目前负责阿里集团 Serverless 研发运维平台建设,<Maven 实战>作者,曾经是 Maven 中央仓库的维护者. 导读:本文作者作为阿里集 ...
- 阿里云荣获可信云容器安全能力先进级认证, ACK/ACR为企业级安全护航
阿里云关注企业级用户的Kubernetes生产落地痛点,结合企业生产环境的大量实践,全面帮助企业真正落地云原生架构.安全侧问题,是众多大中型或金融领域企业的核心关注点. 端到端云原生安全架构 早在20 ...
- 冷热分离之OTS表格存储实战
简介: 为什么要冷热分离由于2020疫情的原因,在线教育行业提前被大家所重视,钉钉教育已经服务超过21万所学校.700万教师和1.4亿学生用户,每天大量的教育数据产生.整体数据量:随着时间的积累,数据 ...
- 如何参与 .NET 的开发和设计
现在 dotnet 属于 dotnet 基金会,所有开发者都可以向 dotnet 贡献代码和参与 .NET 的设计,参与路线决策.本文来告诉大家一些基本玩法,带着小伙伴们入坑 注意哦,参与 dotne ...
- SAP集成技术(四)五种集成架构
本文中,我们将介绍并解释五个主要的模型.我们主要区分直接集成.中间件导向集成以及两个一般的架构概念.直接集成(例如点对点集成)中的标准化很少,但中间件导向的拓扑(例如中心辐射型拓扑以及企业服务总线)追 ...
- NumPy 数组切片及数据类型介绍
NumPy 数组切片 NumPy 数组切片用于从数组中提取子集.它类似于 Python 中的列表切片,但支持多维数组. 一维数组切片 要从一维数组中提取子集,可以使用方括号 [] 并指定切片.切片由起 ...