Android视频开发进阶:Android的Media API

本文探讨Android视频播放API的历史变迁,重点讲解新Media API,包括MediaExtractor和MediaCodec的使用,并通过grafika项目的例子展示如何利用新API播放视频。内容涵盖自适应视频、ExoPlayer和Android开发进阶知识。
摘要由CSDN通过智能技术生成

作者:qing的世界

今天终于可以开始学习安卓平台的视频播放知识了!相信大家早就已经等不及了。


这一章我们会如此安排

1.Android 平台视频播放API的变迁历史

2.Android 新 Media API的使用

3.一个使用新Media API播放视频的例子

1.Android 平台视频播放API的变迁历史

在很久很久以前。。。。

咳咳咳,言重了。。。。

在2012年以前,安卓平台的视频播放,一直都是非常简单的事情(对于大部分开发者来说,因为大部分开发者都不需要深入底层MediaPlayer Service),

非常简单,创建播放器对象,注入URL,播放,播放完毕之后release。。。。。

这给安卓开发者带来了非常大的便利,应用代码也非常少。可以说,在2011年之前(尤其是直播业务还没爆火之前),这款Native Player还是很好用的。

但是这款播放器的缺点也非常显而易见。

1.很多格式的容器文件不支持,也不支持自适应视频播放(Adaptive Streaming)

2.应用开发者很难debug播放器,MediaPlayer的代码很多都是Native Method。并不在Java层。

3.很难做自定义的拓展和设置,比如缓冲的大小,下载进度等等。

正是因为MediaPlayer本身的实现对开发者是完全透明的,所以它也越来越神秘,也逐渐跟不上现在的业务对播放器的需求了。

所以谷歌也意识到了这一点,在2012年的Google IO大会上,谷歌宣布了Android Jelly Bean,也就是4.3之后,安卓平台release新的Media Codec API组。这些API不再像之前傻瓜式的MediaPlayer一样,而是把API组件设计的面向视频播放的更底层概念。比如,编解码API,容器文件读取器Extractor API等等。

以上的图都是从Google IO大会的视频进行截图而来的。我们可以从结构图里看出,原来的MediaPlayer把Extractor,和Codec API全部封锁在了Framework层,应用层完全接触不到。在新的API设计里面,这些都挪到了应用层(其实虽然MediaCodec API,就是编解码API还在Framework,但是应用层可以调用他们)


2.Android Codec API的使用

在全新的Media API里面,最最最重要的就是MediaExtractor和MediaCodec这两个类,第一个可以对容器文件进行读取控制,第二个就是对数据进行编解码的API。

MediaExtractor

</

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值