- 博客(10)
- 资源 (9)
- 收藏
- 关注
原创 9. Android MultiMedia框架完全解析 - MediaExtractor和MediaMuxer介绍
MediaExtractor API: https://developer.android.com/reference/android/media/MediaExtractorAndroid中Native层抽象出来MediaMuxer类和MediaExtractor类,MediaMuxer类主要用于将音频和视频数据进行混合生成多媒体文件(如:mp4文件),而MediaExtractor则...
2019-03-31 13:19:23 2819
原创 8. Android MultiMedia框架完全解析 - prepareAsync的过程分析
还是从mediaplayer.cpp文件开始分析:status_t MediaPlayer::prepareAsync(){ ALOGV("prepareAsync"); Mutex::Autolock _l(mLock); return prepareAsync_l();}基本没做什么,设置了一个自动锁,然后就直接跳到MediaPlayer::prepare...
2019-03-31 13:14:33 2394
原创 7. Android MultiMedia框架完全解析 - ALooper-AHandler-AMessage机制分析
先来看整个框架图:NuPlayer基于Stagefright的基础类构建,使用了更底层的ALooper-AHandler-AMessage机制来异步处理消息。AMessage作为一个消息载体,保存这与这个消息有关的信息;ALooper是一个循环,它运行着一个后台线程,来循环处理接收到的消息(将信息转给AHandler来处理,它相当于一个中转站);AHandler作为一个句柄,它...
2019-03-31 13:04:35 3282
原创 6. Android MultiMedia框架完全解析 - NuPlayerDriver与NuPlayer的通信
先解决NuPlayer与NuPlayerDriver的通信过程,在之前的文章中,都说了NuPlayerDriver是NuPlayer的一个Wrapper,上层的指令发送给NuPlayerDriver后,NuPlayer作为NuPlayerDriver的一个成员变量,NuPlayerDriver想调用NuPlayer的话,就相当简单。当NuPlayer完成一个指令后,如何通知NuPlayerDriv...
2019-03-31 12:59:06 2769 2
原创 5. Android MultiMedia框架完全解析 - 再谈Playback框架及一些学习方法的讨论
经过前面的分析,我们大概知道了一些概念,但是这个StageFright在整个playback的位置是什么样的:Android Media这一块的知识杂乱,而且有深度,有广度。深度的话,从app->JNI->C++->底层的OMX驱动,广度的话,每个播放器在播放的时候,会执行seek操作,快进,快退,暂停等等操作,同时,需要涉及读取源文件(从网络读取,从文件读取),解码(软...
2019-03-31 12:53:53 3374 1
原创 4. Android MultiMedia框架完全解析 - MediaPlayerFactory中OMX_Player的实现
这里的实现,可以参照C++设计模式中的工厂模式,:http://blog.csdn.net/wuzhekai1985/article/details/6660462这里插讲一下厂商定制Player的过程,可以参考NuPlayer的创建过程,通过这个过程,也能够对MediaPlayerFactory类有个比较深入的理解。(这里需要注意,代码是KK442版本的,FSL在那个版本使用OMX...
2019-03-31 12:42:17 3224
原创 3. Android MultiMedia框架完全解析 - setDataSource继续分析
在上一节中,我们分析到从服务端返回后,函数的执行流程(NO_ERROR != player->setDataSource(fd, offset, length)))这里继续执行,从服务端返回后,这个player就对应的是MediaPlayerService::Client,同时需要注意的是,在《Android中C/S架构以及C++层调用步骤分析》中介绍了创建了一个IMediaPlay...
2019-03-31 12:34:18 3860 2
原创 2. Android MultiMedia框架完全解析 - MediaPlayer的C/S架构与Binder机制实现
在Android中大量使用到了C/S架构来实现应用层和底层服务交互,而Binder机制无处不在。同样MediaPlayer也使用了这种机制,MediaPlayer在运行的时候,同样可以分为Client/Server两个部分,他们分别在不同的进程中运行,不同进程间的通信使用Binder机制,我们这里就以setDataSource()为例,讲解一下他们是如何建立关系的,架构图如下:1)...
2019-03-31 12:27:14 4410 1
原创 1. Android MultiMedia框架完全解析 - 从开机到MediaServer的注册过程
Android的App一般是用java写的,大致流程如下:MediaPlayer mediaPlayer = new MediaPlayer();mediaPlayer.setOnCompletionListener(new OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer mp){mediaP...
2019-03-31 12:10:05 8838 3
原创 Android MultiMedia框架完全解析 - 概览
之前的工作中,一直在看Android MultiMedia的一些东西,关注我博客的同学也许知道我换工作了,以后将要从事Camera相关的工作,于是乎,将之前整理存放在有道云笔记里面的一些东西发出来,整理成一个专栏。工作的环境为Android N7.1,基于fsl公司的i.MX6q平台。当然,有很多东西是我自己的领悟,有不对的地方欢迎大家指正。在公司内部做了一个ppt分享,但...
2019-03-31 11:37:52 8226 17
Android MultiMedia框架完全解析
2019-03-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人