
【Android】
文章平均质量分 83
tx3344
这个作者很懒,什么都没留下…
展开
-
Android多媒体开发【10】-- android中OpenMax的实现【1】整体框架
1.android中用openmax来干啥?有了上一篇AwesomePlayer基本框架及播放流程已经很清楚的看到了,android中的 AwesomePlayer就是用openmax来做(code)编解码,其实在openmax接口设计中,他不光能用来当编解码。通过他的组件可以组成一个完整的播放器,包括sourc、demux、decode、output。但是为什么android只用他来做cod原创 2012-10-26 15:15:59 · 13761 阅读 · 4 评论 -
【多媒体封装格式详解】---MKV【1】
Matroska 开源多媒体容器标准。MKV属于其中的一部分。Matroska常见的有.MKV视频格式、MKA音频格式、.MKS字幕格式、.MK3D files (stereoscopic/3D video).1.EBML(Extensible Binary Meta Language)MKV是建立在EBML这种语言的基础上,所以要了解MKV格式需要先了解EBML这种语言。原创 2012-11-09 14:45:38 · 18586 阅读 · 10 评论 -
Android多媒体开发【12】-- android中OpenMax的实现【3】OMX中主要成员
通过上文知道了,每个AwesomePlayer 只有一个OMX服务的入口,但是AwesomePlayer不一定就只需要1种解码器。有可能音视频都有,或者有很多种。这个时候这些解码器都需要OMX的服务,也就是OMX那头需要建立不同的解码器的组件来对应着AwesomePlayer中不同的code。OMX中非常重要的2个成员就是 OMXMaster 和 OMXNodeInstance。OMX通过这俩原创 2012-11-08 10:53:55 · 15600 阅读 · 3 评论 -
Android多媒体开发【8】-- AwesomePlayer基本框架及播放流程
1.通过setDataSource 指定播放器的数据源。可以是URI或者fd.可以是http:// 、rtsp://、本地地址或者本地文件描述符fd。其最终调用是将上层传递来的参数转化为DataSource,为下一步的demux提供数据支持。2.在真正Prepare功能函数onPrepareAsyncEvent()会调用finishSetDataSource_l。通过第一步产生的DataSou原创 2012-10-18 12:26:28 · 16090 阅读 · 0 评论 -
Android多媒体开发【2】-- 利用VideoView开发最简单的视频播放器
接下来贴出main.xml的源码:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:l原创 2012-09-25 12:03:00 · 4665 阅读 · 1 评论 -
Android多媒体开发【4】-- 上层mediaPlayer 是如何调到Stagefright的【2】【图解】
基于android 4.1.1 源码【1】mediaserver 启动后会把media相关一些服务添加到servicemanager中,其中就有mediaPlayerService.这样应用启动前,系统就有了mediaPlayerService这个服务程序。 int main(int argc, char** argv){ sp proc(ProcessSta原创 2012-10-03 13:21:01 · 12111 阅读 · 3 评论 -
Android多媒体开发【5】-- Stagefright原来是个皮包公司
通过上文我们已经进入到了StagefrightPlayer中,当满心激动的查看代码时发现 Stagefright其实就是个皮包公司status_t StagefrightPlayer::setDataSource( const char *url, const KeyedVector *headers) { return mPlayer->setDataSource原创 2012-10-07 19:52:57 · 5540 阅读 · 3 评论 -
Android多媒体开发【6】-- 播放器的基本模型
AwesomePlayer 不管他有多神秘,说到底还是个多媒体播放器。在播放器的基本模型上,他与VCL、mplayer、ffmpeg等开源的结构是一致的。只是组织实现的方式不同。深入了解AwesomePlayer 之前,把播放器的基本模型总结一下,然后按照模型的各个部分来深入研究AwesomePlayer 的实现方式。说白了播放器大致分为4大部分:source、demux、deco原创 2012-10-08 14:37:02 · 8446 阅读 · 6 评论 -
Android多媒体开发【7】-- AwesomePlayer中TimedEventQueue-event事件调度器
上文已经大概介绍了播放器的几大主要部分,但是有了这些功能组件也不能叫做播放器。需要某种方式将这些单独的功能组件驱动起来,形成一个整体的功能。视频处理过程中有很多都是十分耗时的,如果都放在一个大的线程空间中。用户体验的效果可想而知。所以通常都是做异步操作。AwesomePlayer是通过event事件调度来实现这些功能之间的驱动和调用的。AwesomePlayer中的内部变量原创 2012-10-17 16:18:01 · 9427 阅读 · 3 评论 -
Android多媒体开发【9】-- OpenMax IL简介
1.openmax 简介http://www.khronos.org/openmax/OpenMax是一个多媒体应用程序的框架标准,由NVIDIA公司和Khronos在2006年推出。OpenMAX分为3层:第一层:OpenMax DL(Development Layer,开发层)第二层:OpenMax IL(Integration Layer,集成层)原创 2012-10-24 13:33:04 · 15216 阅读 · 0 评论 -
Android多媒体开发【3】-- 上层mediaPlayer 是如何调到Stagefright的【1】
基于android 4.1.1 源码前文Android多媒体开发笔记【1】-- 利用SurfaceView + MediaPlayer开发最简单的视频播放器已经利用android SDK接口实现了个简单的视频播放器,对于上层应用开发者来说,想实现一个播放器只要非常简单的几步:mediaPlayer=new MediaPlayer();mediaPlayer.setDataSource原创 2012-09-27 12:54:45 · 7124 阅读 · 2 评论 -
Android多媒体开发【1】-- 利用SurfaceView + MediaPlayer开发最简单的视频播放器
利用android SDK 提供的接口 开发最简单的视频播放demo。接下来贴出main.xml的源码:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:la原创 2012-09-25 11:02:58 · 9377 阅读 · 0 评论 -
Android多媒体开发【11】-- android中OpenMax的实现【2】AwesomePlayer中openmax的入口
AwesomePlayer 中有个变量 OMXClient mClient;让我们看看 OMXClient class OMXClient {public: OMXClient(); status_t connect(); void disconnect(); sp interface() { return mOMX;原创 2012-10-30 09:20:59 · 10267 阅读 · 0 评论