欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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