Exoplayer依赖
implementation 'com.google.android.exoplayer:exoplayer:2.17.1'
ExoPlayer的播放界面使用StyledPlayerView
<com.google.android.exoplayer2.ui.StyledPlayerView
android:layout_width="match_parent"
android:layout_height="match_parent" />
自定义属性如下:
- show_buffering:缓冲进图的显示模式,值为never时表示从不显式,值为when_playing时表示在播放时显示,值为always时表示一直显示
- show_timeout:控制栏的消失间隔,单位为毫秒
- use_controller:是否显示控制栏,值为true时表示显示控制栏,值为false时表示不显示控制栏
- resize_mode:缩放模式,值为fit表示宽高比例缩放,值为fill表示填满播放器界面
绑定视图:
ExoPlayer build = new ExoPlayer.Builder(this).build();
StyledPlayerView pv = findViewById(R.id.off_video_player);
pv.setPlayer(build);
播放视频:
public void playVideo(Uri uri) {
DefaultDataSource.Factory factory = new DefaultDataSource.Factory(this);
MediaItem item = new MediaItem.Builder().setUri(uri).build();
ProgressiveMediaSource mediaSource =
new ProgressiveMediaSource.Factory(factory).createMediaSource(item);
mPlayer.setMediaSource(mediaSource);
mPlayer.prepare();
mPlayer.play();
}