AwesomePlayer里面定义了一个TimedEventQueue,通过向它发事件消息,来驱动player的运转。
定义在AwesomePlayer.h里面,如下:
TimedEventQueue mQueue;
TimedEventQueue中维护了一个队列,外面通过调用其提供的方法postEvent, postEventWithDelay等等来向队列添加事件,在执行完mQueue.s...
分类:
其他好文 时间:
2014-08-21 17:16:24
阅读次数:
297
上一篇MediaPlayer本地播放流程解析(一)讲了MediaPlayer的setDataSource流程,本篇将接着讲MediaPlayer的prepare流程。
Prepare前面的流程一直到AwesomePlayer,和setDataSource都基本上一样,这里直接略掉。下面将从AwesomePlayer开始。
status_t AwesomePlayer::prepare() {
...
分类:
其他好文 时间:
2014-08-20 21:13:12
阅读次数:
488
上一篇文章主要是参照AwesomePlayer直接用SoftwareRenderer类来显示yuv,为了能用到这个类,不惜依赖了libstagefright、libstagefright_color_conversion等动态静态库,从而造成程序具有很高的耦合度,也不便于我们理解yuv数据直接显示的深层次原因。
于是我开始研究SoftwareRenderer的具体实现,我们来提取Soft...
分类:
移动开发 时间:
2014-07-11 00:14:52
阅读次数:
509
原文http://blog.csdn.net/tx3344/article/details/8117908通过上文知道了,每个AwesomePlayer 只有一个OMX服务的入口,但是AwesomePlayer不一定就只需要1种解码器。有可能音视频都有,或者有很多种。这个时候这些解码器都需要OMX的...
分类:
移动开发 时间:
2014-06-26 22:00:10
阅读次数:
338
AwesomePlayer 中有个变量[cpp]view plaincopyOMXClientmClient;让我们看看 OMXClient[cpp]view plaincopyclassOMXClient{public:OMXClient();status_tconnect();voiddisco...
分类:
移动开发 时间:
2014-06-26 21:38:45
阅读次数:
283
前沿:在前面的博文中,基本提到的是stagefright相关的控制流,具体分析了android架构中的MediaExtractor、AwesomePlayer、StagefrightPlayer、OMXCodec等的创建,底层OMXNodinstance实例的创建。分析了OMX最底层插件库、编解码器组件的架构以及如何创建属于我们自己的OMX Plugin。分析源码架构的另一个关键是数据流的分析,从...
分类:
移动开发 时间:
2014-05-24 19:57:18
阅读次数:
316
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email: gzzaigcn2012@gmail.com 在前面的博文中提到,AwesomePlayer::onPrepareAsyncEvent()开始进行Codec解码器组件的获取以及创建,这里和大家分享。...
分类:
移动开发 时间:
2014-05-23 02:02:13
阅读次数:
442
Android MediaPlayer UML类图...
分类:
移动开发 时间:
2014-05-21 09:48:42
阅读次数:
390