启动打牛整一个好的android的视频播放器,造福我等影迷~
解决方案 »
- 关于调用百度地图的一个问题
- 如何从一个activity到另外一个应用程序的一个activity中
- 怎么让ScrollView控件一直都充满整个屏幕?
- 求ExpendableListView 如何去掉系统默认展开图标?谢谢!
- 更新ProgressBar进度
- android ndk 静态库调试
- android如何实现应用内付费?
- 在一个有返回值的方法里使用了子线程,如何返回子线程中的值,如下代码中,我在子线程获取到了address的值,但是这个方法的返回结果是空,该如何解决?
- 新手学android 用eclipse创建android项目报错
- cocos2dx 3.1.1 layout::removeAllChildren()疑惑
- 模拟器不执行程序问题
- android 获取本地IP地址
Android出现也是一两年的事情,其中最新鲜的玩意就是把Java成功推向移动开发,把大批的Java开发者带到一个充满诱惑的嵌入式世界,而我也因此有机会近距离观察它。
在Multimedia方面,Java提供的功能很多很强大,只是那一片片密密麻麻的代码,直让人头昏眼花,幸好有一点MFC基础,就尝试对号入座,如此一套,差不多理清一半的概念。先说头绪最乱的UI系统,Java提供的专业名字叫Graphic,首先映入眼脸的是Bitmap,这应该是2D数据存储的容器,千变万化,无所不包,能与JPG, PNG, GIF格式进行互换,又能轻松与Canvas, SurfaceView, Widget等概念融合,在真实的用户界面上展示出来。虽然很讨厌各式各样的概念,但本着艺多不压身的精神去深入琢磨,Canvas提供的功能涵盖了描点画线,绘图画圈,和MFC的DC概念如出一辙,顿悟。鉴于学习MFC时熟知的App/View/Frame架构,于是乎套了一下,应该是Activity/View/Widget,心中大喜,不再去细究。跳过UI层出不穷概念,试图去寻找本质,发现整个UI系统的灵魂叫Surface,不管Canvas, Widget, 还是各种各样的View,只要想在界面上有所展示,最终都离不开它。Java层的Surface,只是一个外壳,功能实现全部在JNI下面,后续篇幅会陆续谈到这一点。按耐住强烈的好奇心,先撇开Surface的具体实现不管,往上望去,在Surface上搭建出了SurfaceView, 以及用于GLES的GLSurfaceView,学习MFC时,接触过ListView,TreeView等等一大堆的View,想必Java里也有类似的高级货。各种View所提供功能只是如何去显示,为了更好的显示,需要对图形,图像进行复杂的加工处理,这就是bitmap, canvas等价值所在。鉴于其具体实现来自于底层的Skia库,应该在Skia篇细细唠叨。说完错综复杂的UI,进入Multimedia的一个重要话题,不管Mp3, Mp4 Player,核心都需要一个播放器,再高级一点,比如DV,那就需要Recorder,Android在Java层提供了周全的API,并且封装了类似MovieView等更到位的SDK,使得开发Android上的Audio, Video录放器变得易如反掌,虽然在Java里看不到太多的Player和Recorder代码,并不意味着这东西就很简单,上头轻松,下头受罪,Android的Opencore四千多个文件,就是专门用来干这个事情,当然想要支持更多更强劲的性能,这些还远远不够,需要更强大的硬件加速支持。该收尾时,发现自己对Java确实没有天赋,鉴于自身经历,不得不拿出MFC来说事,希望对MFC免疫的朋友,不要嘲笑-:)