项目中有用到视频播放的功能,因为我自己也是菜鸟一枚,参考了许多框架之后,觉得JieCao应该简单最好处理,所以就选择用JieCao来播放视频了。JIecao本身是基于安卓MediaPlayer的,所以使用方法类似,不过对于很多偷懒的人来说,省去了直接使用MediaPlayer中间很多的过程。
附上Jiecao的Git地址:https://github.com/lipangit/JieCaoVideoPlayer , 具体用法可以参考文档指南,或者加群问。
这里的代码是接上一篇文章写的《Android遍历文件夹下的视频文件,获取视频文件的缩略图展示》,偷懒如我,还请见谅,下面开始正文了。老规矩,先看下效果如何。
开始录源码了,跟上篇文章重复的地方我就不多讲了,先看下要注意的地方。首先是jar包的冲突,这是引入依赖包的时候的报错信息,说是发现了两个v4.jar包
我的做法是删除了自己工程中的v4.jar包,下面是我的工程结构
这下jar包就都是外部引入的了,跟自己的工程没关系。
首先看下MainActivity中新增和改变的地方。
看下Adapter中新增的部分,仅仅只多写了一句。
这里我在adapter中把自己定义的实体类MediaBean作为Tag标签设置给GridView的每个item,所以就可以直接通过getTag()得到对应的实体类,个人以为这一点值得新手菜鸟借鉴和学习,不用在使用的时候另外去建立一个对应的顺序的List,然后根据position取到对应的实体。
跟上一篇想比,多加了一个播放的activity,这里也贴出来给大家参考下,其实很简单的。
public class JCPlayerActivity extends Activity {
JCVideoPlayerStandard jcVideoPlayerStandard ;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jcplayer);
initView();
}
private void initView(){
jcVideoPlayerStandard = (JCVideoPlayerStandard) findViewById(R.id.jiecao_player_view);
MediaBean bean = (MediaBean) getIntent().getSerializableExtra("media"); // 获取传递过来的bean
String path = bean.getPath(); // 视频地址
String name = bean.getMediaName(); // 视频名称
jcVideoPlayerStandard.setUp(path, JCVideoPlayerStandard.SCREEN_WINDOW_FULLSCREEN, ""+name);
jcVideoPlayerStandard.startPlayLogic(); // 开始自动播放
// 视频的回退按钮设置点击事件
jcVideoPlayerStandard.backButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
jcVideoPlayerStandard.release(); // 释放视频
startActivity(new Intent(JCPlayerActivity.this, MainActivity.class)); // 跳转到上层界面
JCPlayerActivity.this.finish(); // 结束当前界面
}
});
}
@Override
protected void onDestroy() {
JCVideoPlayer.releaseAllVideos();
super.onDestroy();
}
}
至于对应的xml布局文件就很简单了,如下所示。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard
android:id="@+id/jiecao_player_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
其实jiecao的使用比较简单,一句代码就可以播放视频了
jcVideoPlayerStandard.setUp(path, JCVideoPlayerStandard.SCREEN_WINDOW_FULLSCREEN, ""+name);
不过在实际使用中肯定不止这么简单,哈哈,至于细节问题,大家可以自己多多去研究。
记得在onDestroy方法中调用releaseAllVideos()方法释放视频资源。
@Override
protected void onDestroy() {
JCVideoPlayer.releaseAllVideos();
super.onDestroy();
}