项目中有用到视频播放的功能,因为我自己也是菜鸟一枚,参考了许多框架之后,觉得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 ;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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"); // 获取传递过来的beanString path = bean.getPath(); // 视频地址String name = bean.getMediaName(); // 视频名称jcVideoPlayerStandard.setUp(path, JCVideoPlayerStandard.SCREEN_WINDOW_FULLSCREEN, ""+name);jcVideoPlayerStandard.startPlayLogic();  // 开始自动播放// 视频的回退按钮设置点击事件jcVideoPlayerStandard.backButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {jcVideoPlayerStandard.release(); // 释放视频startActivity(new Intent(JCPlayerActivity.this, MainActivity.class)); // 跳转到上层界面JCPlayerActivity.this.finish(); // 结束当前界面}});}@Overrideprotected 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.JCVideoPlayerStandardandroid: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()方法释放视频资源。

 @Overrideprotected void onDestroy() {JCVideoPlayer.releaseAllVideos();super.onDestroy();}

附上源码的连接:

安卓获取视频缩略图 - 下载频道 - CSDN.NET   http://download.csdn.net/detail/u010898329/9769733

菜鸟带你使用JieCaoMediaPlayer播放本地视频相关推荐

  1. html怎样手机播放本地视频播放器,手机优酷怎么播放本地视频 本地文件导入方法...

    优酷下载的视频一般都会是KUX格式,只能使用优酷进行播放,比较霸道,那么反过来优酷是否可以播放本地视频呢?自然是可以的,下面就跟小编了解下吧. 方法一:找到视频选择打开方式 首先在智能手机的文件管理中 ...

  2. 利用Windows Media Player实现倍速播放本地视频

    利用Windows Media Player实现倍速播放本地视频 背景:在这样的一个特殊时期被迫开始了网上教学,我们的老师怕网络不好,直接发了录的教学资源给我们,但是看视频吧老觉得语速慢,想调倍速,本 ...

  3. html5怎么用优酷播放本地视频,手机优酷怎么播放本地视频 本地文件导入方法

    优酷下载的视频一般都会是KUX格式,只能使用优酷进行播放,比较霸道,那么反过来优酷是否可以播放本地视频呢?自然是可以的,下面就跟小编了解下吧. 类别:影音播放   大小:122.51M    语言:简 ...

  4. Python调用OpenCV接口播放本地视频文件、本地和网络摄像头

    1 前言 上篇文章介绍了在WIN10系统上, C++调用OpenCV接口,播放本地视频文件.本地和网络摄像头视频.本篇我们来看一下,Python如何调用OpenCV接口,做同样的事情. 序号 视频来源 ...

  5. Vue 媒体处理(摄像头,截图,播放本地视频)

    Vue 媒体处理(摄像头,截图,播放本地视频) 一. 打开摄像头 ```javascriptthis.constraint = {// video属性设置video: {width: 300,heig ...

  6. PP视频如何播放本地视频文件

    今天小编给广大用户分享PP视频如何播放本地视频文件.PP视频手机版是一款装机必备的手机视频播放软件,用户可在线观看PP视频全部免费高清正版视频,海量内容,高清画质,自由点播,配合先进的P2P下载技术, ...

  7. 如视VR显示连不上服务器,HTC Vive播放本地视频图文教程(附常见问题解决办法)...

    由于需要连接电脑设备,因而部分新手用户不懂如何使用HTC Vive播放本地视频.实际上整个操作并不复杂,只需要用到Vive Cinema播放器即可.Vive Cinema是HTC VR New Tec ...

  8. android实现本地视频播放功能,Android开发 MediaPlayer入门_播放本地视频

    前言 MediaPlayer,可以播放视频/音频,并且它支持本地和网络文件的播放.本片博客作为入门教程,先以最通俗的方式解释播放文件本地视频. 实现流程 获取权限 保持屏幕常亮 初始化SurfaceV ...

  9. opencv | A02 播放本地视频 调用摄像头

    前言 VideoCapture:视频捕获相关类 代码实现 1.播放本地视频 #include <opencv2\opencv.hpp> #include <iostream>u ...

最新文章

  1. #np.random.normal,产生制定分布的数集(默认是标准正态分布)
  2. 计算机文件无法显示后缀,但一般情况下电脑默认是看不到文件格式显示(也就是文件扩展名)...
  3. 快手春节活动奖励未到账,被羊毛党投诉上了全国12315平台
  4. hadoop yarn 获取日志_Hadoop YARN配置参数剖析(2)—权限与日志聚集相关参数
  5. Hyper-V常用问题解惑
  6. c语言 去掉双引号_技术分享|浅谈C语言陷阱和缺陷
  7. Leetcode中学到的SQL函数汇总
  8. mybatis中的xml配置文件中sql语句里的比较符号需要用特殊标签包裹有比较大于和小于条件
  9. 多元梯度下降法--machine learning
  10. oracle 如何防止锁表,oracle锁表该如何解决
  11. 计算机的表白隐藏功能,微信还有这个功能?隐藏代码还能表白!教你高级告白手段...
  12. html毕业设计任务要求,毕业设计任务及进度安排|毕业设计进度安排
  13. HTML5之HTML+CSS3代码(二)
  14. linux 下进入root
  15. 三维高清vR展示模型的应用及优势
  16. c语言海报,C语言 竞选海报
  17. 连续系统分析【信号与系统四】
  18. K-means聚类、KNN算法原理
  19. 秒懂色彩位数:8bit、10bit、12bit(三十)
  20. 5分钟爬虫教程:如何用 Python 爬一些微电影?

热门文章

  1. Java线程池实现多消费者批量处理队列消息
  2. 北大核心期刊2020_职称期刊论文发表 | 会计如何发表北大核心论文
  3. 查询具体到时分秒的时间段数据(查询昨天的下午四点到今天的下午四点的数据)
  4. 第四届蓝桥杯JavaA组省赛真题
  5. 清华大学交叉信息研究院弋力老师课题组招收科研实习生
  6. 最常访问的几个技术网站
  7. centos安装MySQL到指定盘_Centos下安装mysql 和挂载硬盘
  8. 实现登陆功能——用户登录设计
  9. 教你刷各大android手机应用市场下载排名
  10. java hypot_static double hypot(double x, double y)