
mediaplayer
文章平均质量分 60
shcalm
这个作者很懒,什么都没留下…
展开
-
android mediaplayer prepare
android 的mediaplayer的prepare过程有很多动作,比方demuxer,find codec,如果时间较长就会出现ANR,android的系统会在5秒检测主线程是否有响应,没有就会出现错误提示,用户体验非常的不好。所以系统如果有parepareAsync提供的原创 2011-09-01 16:49:16 · 2409 阅读 · 1 评论 -
OMXCodec源码分析---part2
书接前文omxcodec创建完了以后,后面就要开始读取数据,解码,送出数据一系列的操作接着看initvideodecoder,create omxcodec以后,调用了strat方法,代码如下{ CODEC_LOGV("OMXCodec::start "); Mutex::Autolock autoLock(mLock); if (mState != LO原创 2013-04-15 11:37:22 · 5838 阅读 · 0 评论 -
移植FFmpeg到android ics
想弄个小东西,自己练习一下,就想到把FFmpeg移植到android上面 网上有现成的2.2的移植,可以下载下来,链接https://github.com/havlenapetr,里面的ffmpeg和framework下面的libaudio和libviedo两个so,就是全部的东西。 看过一些东西,都说不开放某些代码,挺没劲的,人家都已经放出全部代码了,有什么藏匿的。原创 2012-04-20 16:36:26 · 2942 阅读 · 0 评论 -
AwesomePlayer 源代码分析
1,AwesomeEvent 这个是同步相应的事件而做的一个类,跟framework层的looper和handler作用相似,player有一些异步操作比如解析文件,这些操作比较耗时,做异步操作然后做回调会有更好的用户体验struct AwesomeEvent : public TimedEventQueue::Event 继承自TimedEventQueue::Event ,关原创 2011-11-01 17:08:27 · 5696 阅读 · 4 评论 -
Nuplayer源代码分析2
先说一下我了解的openmax,omx的数据流动是port方式,内存分配和释放都在port上面进行。在android上面omx作为一个binder,是和mediaserver在同一个process。就是了解这么一点点,有深入了再写 接着说nuplayer,nuplayer的render方式为什么会换成现在这种方式,说一下我的理解,因为代码还没看完,只是感觉是这样的,有错误后面再修复原创 2012-02-10 14:48:36 · 4241 阅读 · 0 评论 -
Nuplayer源代码分析1
Android升级到4.0.3以后流媒体的播放有了很大的改变,不用以前的awesomeplayer的东西了,自己单独写了一个模块,video和audio都是自己单独的,尝试分析一下 4.0.1的时候Nuplayer是http相关链接的播放器,到了4.0.3的时候Nuplayer成了rtsp的播放器,而http又回到了awesomeplayer的部分,真是诡异,但是Nuplayer有ht原创 2012-01-30 19:07:33 · 9645 阅读 · 2 评论 -
MediaPlayer增加字幕功能
想在Android的MediaPlayer增加字幕功能,下面是一些笔记, 没有服务器的支持,就只是做了个本地的解析,如果一开始就解析全部的数据,例如几百条的数据,很容易造成问题,出现ANR,想起来MediaPlayer在解析文件的时候有个nucachedfilesource2的东西,可以分批次load文件到内存加快播放速度,就是这么做了,在播放位置到了数据尾端的时候再load进来原创 2011-12-06 23:14:17 · 2942 阅读 · 3 评论 -
android 4.0 codec的一点变化
1 加入了avi和flac的extractor,原生支持了avi和flac的格式2 codec方式改变,在2.3上面有softwarecodec还是直接继承MediaSource,在4.0上面所有的codec都是使用omx方式,在加载omx plugin的时候分成了vendor的plugin,就是hardware下面的自定义plugin,和softplugin,就是2,.3的softwar原创 2011-11-30 16:52:29 · 2469 阅读 · 1 评论 -
android mediaplayer的尺寸缩放
android系统默认的播放器的surfaceview的尺寸在开始就会计算好,并且无法更改,需要做全屏播放功能就需要自己继承videoview类来扩充功能了主要就是onMeasure这个函数{ if ( mVideoWidth * height > width * mVideoHeight ) { //Log.i("@@@"原创 2011-11-03 18:32:07 · 3838 阅读 · 0 评论 -
ANR的一个实例分析
ANR是android经常出的超时提示,以前看过一个帖子,内容是mediaplayer在release的时候出的ANR,作者也是出了方法,什么加handler之类的。最后都么有解决,咱们先看看那位同学些的帖子http://www.eoeandroid.com/forum.php?mod=viewthread&tid=55761&page=1&authorid=6510ANR 的一般原创 2013-07-15 16:32:24 · 2077 阅读 · 1 评论