前言:现在直播非常火爆,公司在最初的时候也想赶一下时髦,提出了直播的需求,今天正好抽出了一点时间记录一下。众所周知,直播是分推流与拉流的,顾名思义推流可以理解为录制端,而拉流则是播放端。
今天,只是记录一下拉流(推流会在后续补上)。
开发常用的视频播放器有很多,前面我也记录了一个JCVideoPlayer,除此之外还有Vitaimo、PlayerManager等,但是今天的主角是IJKPlayer(据说斗鱼跟B站就是利用的街一款播放器)。
第一步,当然是引入库了
与其他库的引入一样,引入IJKPlayer一般有两种方式(可能还有其他方式),一种是利用gradle导入,另外一种是导入Module,具体步骤就不详细记录了。
第二步,界面布局
<com.dl7.player.media.IjkPlayerView android:id="@+id/player_view" android:layout_width="match_parent" android:layout_height="match_parent" />
第三步,初始化播放器
playerView.init() .setTitle("") .alwaysFullScreen() // 固定全屏 .setVideoPath(path).start(); // 设置视频Url,单个视频源可用这个
我们项目中所用的协议是SMTP,除此之外IJKPlayer还支持HLS协议,只不过对后者的支持似乎不是很美丽,所以使用该播放器的话建议使用SMTP协议。
上面的三步便是IJKPlayer的简单使用,但是仅仅这样问题是比较多的,在实际应用中难免会需要修改库的源代码,或者调用其原本就定义好的一些方法,下面举两个简单的例子:
1、界面美化
大多数的时候库自带的界面样子是入不了客户的眼睛的,因此我们需要修改界面,这样就会涉及到一系列的方法重写、事件重写等问题
2、延迟优化
IJKPlayer播放器默认是有缓存的,可以设置不超过4秒的缓存时间,这需要根据实际情况设置相应的值才能最大可能的保证既不会延迟太高又不会出现数据丢包的问题。
这篇文章就不粘贴太多的代码了,都是一些基本的运用。在后续会写一篇文章系统的记录一个简易版的直播项目,包括推流与拉流的处理。