IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> (2)android MediaPlayer 和Nupalyer、MediaCodec、OMX关系 -> 正文阅读

[移动开发](2)android MediaPlayer 和Nupalyer、MediaCodec、OMX关系

基于android 10/11, 总览一下MediaPlayer 中的给模块功能,角色定位。
查看源码可以在下几个目录 :

android\frameworks\base\media\java\android\media
android\frameworks\base\media\jni
android\frameworks\av\media\libmedia
android\frameworks\av\media\libmediahelper
android\frameworks\av\media\libmediaplayerservice
android\frameworks\av\media\libstagefright

1. mediaplayer? 采用CS(客户端服务端模式) 服务端:MediaPlayerService

2. mediaPlayer 服务端内部类 Client, 使用抽象工厂模式,MediaPlayerFactory ,耦合创建NuplayerFactory->NuplayerDriver->Nuplayer (AwesomePlayer什么的已经去除了)

3. NuPlayer 作为一个native层的Player, 具备 标准的三个模块:demuxer、decoder、render. 这里即对应Source Decoder Render。 完全具备一个player所有的功能

3.1 source 中有多种输入的支持,http、rtsp 、StreamSrouce和最常用的GenericSource.
? ? ? ? GenericSource即使用到了MediaExtracor,从文件中解析出track

3.2 . Decoder 包装了MediaCodec. (android 也对外开放了MediaCode,包括java层的和Ndk C层的接口 顾名思义也就是媒体编解码)。?
MediaCodec 又转而使用ACodec, (ACodec, 即android codec),注意这里各种命名和包装的关系,很有层次感,并不是无端就这么多层次来恶心人的。 ACodec 才是android平台上codec的实现,但是为了屏蔽硬件厂商的实现差异,对上提供统一的接口,android 上对硬件厂商提供的编解码器用openMax 标准接口进行规范,(原本上openMax不仅仅规定了code的接口形式,甚至是demuxer都有,一套组件接口,但是android 只是使用了 code)。 所以 以OMX接口规范为分割, 纯软件架构层在OMX接口以上, 硬件厂商的具体具体功能已OMX规范提供组件库。
3.3 Render? 这里面有时间戳的控制,用于同步音视频的控制等,待进一步分析。

Nuplayer:

补充两张以前分析不怎么规范的图:


  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 01:04:20  更:2022-09-30 01:06:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:51:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码