一、框架选择
这边主要使用谷歌原生框架Exoplayer 。
api 'com.google.android.exoplayer:exoplayer:2.12.2'
二、代码调用
1、单个文件播放
player = new SimpleExoPlayer.Builder(this).build();
standard_video.setPlayer(player);
player.addListener(myPlayListener);
Uri uri = Uri.parse(videoUrl);
MediaItem mediaItem = MediaItem.fromUri(uri);
player.setMediaItem(mediaItem);
player.prepare();
player.setPlayWhenReady(true);
2、多个文件播放
将创建的MediaItem 通过Player的add方法添加进去
player.addMediaItem(mediaItem);
3、实现视频的重播
通过设置RepeatMode
player.setRepeatMode(Player.REPEAT_MODE_ALL);
player.setRepeatMode(Player.REPEAT_MODE_OFF);
player.setRepeatMode(Player.REPEAT_MODE_ONE);
4、自定义播放界面
1:先复制PlayerView的代码修改为
MyExoPlayerView
2:再复制PlayerControlView的代码修改为
MyExoPlayerControlView
3:更改内部的报错 将MyExoPlayerView的内部PlayerControlView的引用改为MyExoPlayerControlView
4:exo_player_control_view.xml新建控制器文件。注意名字不可以更改,因为exoplayer的内部引入就是这个名字
5:将这些view的初始化改为自己xml中的id
@Nullable private final View previousButton;
@Nullable private final View nextButton;
@Nullable private final View playButton;
@Nullable private final View pauseButton;
@Nullable private final View fastForwardButton;
@Nullable private final View rewindButton;
@Nullable private final ImageView repeatToggleButton;
@Nullable private final ImageView shuffleButton;
@Nullable private final View vrButton;
@Nullable private final TextView durationView;
@Nullable private final TextView positionView;
@Nullable private final TimeBar timeBar;
用不到的可以删除,这个步骤需要细致点,不然会导致出错。
下面附上demo
https://download.csdn.net/download/fighter5211314/14894320