这里我推荐大家使用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 JCVideoPlayerStandard jcVideoPlayerStandard;
String s1="http://gslb.miaopai.com/stream/ed5HCfnhovu3tyIQAiv60Q__.mp4";
String s2="http://player.youku.com/player.php/sid/XMjUyODI2NDc2MA==/v.swf";
String imageUrl="http://a4.att.hudong.com/05/71/01300000057455120185716259013.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jie_cao_video);
jcVideoPlayerStandard= (JCVideoPlayerStandard) findViewById(R.id.jiecao_Player);
ImageView thumbImageView = jcVideoPlayerStandard.thumbImageView;
Glide.with(this).load(imageUrl).into(thumbImageView );
jcVideoPlayerStandard.setUp(s1,jcVideoPlayerStandard.SCREEN_LAYOUT_NORMAL,"视频标题");
jcVideoPlayerStandard.startFullscreen(this, JCVideoPlayerStandard.class, videoUrl, "视频标题");
jcVideoPlayerStandard.startButton.performClick();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
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();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
以上步骤就完成了最基本的播放功能.
注意:jiecaovideoplayer支持file:///开头的文件播放,但是不支持assets或者raw目录下的视频,assets下的视频要先复制到本地路径才能播放,至于怎么监听播放完全呢,要继承JCvideoPlayerStandard 复写onAutoCOmplete函数
播放效果