tv端视频播放解决方案
程序员文章站
2022-03-03 22:03:31
一、框架选择这边主要使用谷歌原生框架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(videoUr...
一、框架选择
这边主要使用谷歌原生框架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
本文地址:https://blog.csdn.net/fighter5211314/article/details/112890997
上一篇: matplotlib绘制柱状图
下一篇: nuxtjs项目创建后的内容配置