Android 仿今日头条视频播放控件JieCaoVideoPlayer(几行代码快速实现)
2018-03-16 16:41
1731 查看
前段时间由于项目需要用到类似于今日头条的视频播放器,实现在线播放,边缓存边播放,当然也可以播放本地文件,如下图所示:
这里我推荐大家使用jiecaovideoplayer开源库,这个库的播放引擎是ijkplayer,它调用ffmpeg
可以完全自定义UI
能在ListView、ViewPager和ListView、ViewPager和Fragment等多重嵌套模式下全屏工作
手势修改进度和音量
视频大小的屏幕适配,宽或长至少有两个对边是充满屏幕的,另外两个方向居中
可以在加载、暂停、播放等各种状态中正常进入全屏和退出全屏
重力感应自动全屏
WebView嵌套本地视频控件
[支持https和rtsp]{https://developer.android.com/guide/topics/media/media-formats.html}
小于 100kb
总体说明:
这个播放器本身就具有自动记忆播放进度的功能,全屏状态下具有手势快进和快退的功能,以及左边控制亮度,
右边控制音量点击全屏后视频还是竖屏,需要旋转手机才能变成横屏播放,并且使用移动数据时,会有dialog提示
以上步骤就完成了最基本的播放功能.
注意:jiecaovideoplayer支持file:///开头的文件播放,但是不支持assets或者raw目录下的视频,assets下的视频要先复制到本地路径才能播放,至于怎么监听播放完全呢,要继承JCvideoPlayerStandard 复写onAutoCOmplete函数
播放效果
这里我推荐大家使用jiecaovideoplayer开源库,这个库的播放引擎是ijkplayer,它调用ffmpeg
1.主要特点
视频全屏播放和浮层小窗播放可以完全自定义UI
能在ListView、ViewPager和ListView、ViewPager和Fragment等多重嵌套模式下全屏工作
手势修改进度和音量
视频大小的屏幕适配,宽或长至少有两个对边是充满屏幕的,另外两个方向居中
可以在加载、暂停、播放等各种状态中正常进入全屏和退出全屏
重力感应自动全屏
WebView嵌套本地视频控件
[支持https和rtsp]{https://developer.android.com/guide/topics/media/media-formats.html}
小于 100kb
总体说明:
这个播放器本身就具有自动记忆播放进度的功能,全屏状态下具有手势快进和快退的功能,以及左边控制亮度,
右边控制音量点击全屏后视频还是竖屏,需要旋转手机才能变成横屏播放,并且使用移动数据时,会有dialog提示
2.项目引入:
compile 'fm.jiecao:jiecaovideoplayer:5.5' compile 'com.github.bumptech.glide:glide:3.7.0'
2.添加权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
3.添加布局
<fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard android:id="@+id/jiecao_Player" android:layout_width="match_parent" android:layout_height="500px" />
4.清单文件中Activity配置
<activity android:name=".baseui.activity.TestActivity" android:configChanges="orientation|screenSize|keyboardHidden" android:screenOrientation="portrait"></activity>
5.Activity中直接使用
/** * 这个播放器本身就具有自动记忆播放进度的功能,全屏状态下具有手势快进和快退的功能,以及左边控制亮度,右边控制音量 * 点击全屏后视频还是竖屏,需要旋转手机才能变成横屏播放 */ //视频播放地址 private SensorManager sensorManager; private JCVideoPlayer.JCAutoFullscreenListener sensorEventListener; private JCVideoPlayerStandard jcVideoPlayerStandard; String s1="http://gslb.miaopai.com/stream/ed5HCfnhovu3tyIQAiv60Q__.mp4"; String s2="http://player.youku.com/player.php/sid/XMjUyODI2NDc2MA==/v.swf";//不支持swf格式的视频播放 String imageUrl="http://a4.att.hudong.com/05/71/01300000057455120185716259013.jpg"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); sensorEventListener = new JCVideoPlayer.JCAutoFullscreenListener(); jcVideoPlayerStandard= (JCVideoPlayerStandard) findViewById(R.id.jiecao_Player); //添加视频缩略图 ImageView thumbImageView = jcVideoPlayerStandard.thumbImageView; //使用Glide添加 Glide.with(this).load(imageUrl).into(thumbImageView ); //配置jiecaovideoplayer jcVideoPlayerStandard.setUp(s1,jcVideoPlayerStandard.SCREEN_LAYOUT_NORMAL,"视频标题"); }
6.在Activity监听如下生命周期方法
@Override protected void onResume() { super.onResume(); Sensor accelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sensorManager.registerListener(sensorEventListener, accelerometerSensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onPause() { super.onPause(); sensorManager.unregisterListener(sensorEventListener); JCVideoPlayer.releaseAllVideos(); } @Override public void onBackPressed() { if (JCVideoPlayer.backPress()){ return; } super.onBackPressed(); }
以上步骤就完成了最基本的播放功能.
注意:jiecaovideoplayer支持file:///开头的文件播放,但是不支持assets或者raw目录下的视频,assets下的视频要先复制到本地路径才能播放,至于怎么监听播放完全呢,要继承JCvideoPlayerStandard 复写onAutoCOmplete函数
播放效果
相关文章推荐
- Android 仿今日头条的视频播放控件(几行代码快速实现)
- Android 仿今日头条视频播放控件JieCaoVideoPlayer(几行代码快速实现)
- Android 仿今日头条的视频播放控件(几行代码快速实现)
- Android 仿今日头条的视频播放控件(几行代码快速实现)
- 安卓视频播放器 一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定,仿今日头条 Android视频播放器
- 安卓视频播放器 一行代码快速实现在线视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- 安卓自动更新,静默更新,替换友盟更新可以在通知栏里显示更新下载进度,几行代码快速实现Android下载更新
- Android中SurfaceView视频播放实现代码
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- Android中SurfaceView视频播放实现代码
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- Android自定义WebView实现Youtube网络视频播放控件
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- dataGridView 控件快速绑定数据源后,简单的代码实现
- android之视频播放控件VideoView简单应用
- Android之SurfaceView实现视频播放
- Android之SurfaceView实现视频播放