1.列表播放,只能使用ManualPlayer,在你的VideoHolder
1.在列表控件使用属性 ”app:controller_layout_id="@layout/simple_exo_playback_list_view"“ //提供默列表控制布局
2.player_list="true" 设置为true 开启列表模式
3.设置列表item 没有播放完成当前视频播放进度,不然不会保存播放进度---> userPlayer.setTag(getAdapterPosition());
3.设置列表item 没有播放完成当前视频播放进度,不然不会保存播放进度---> userPlayer.setTag(getAdapterPosition());
3.设置列表item 没有播放完成当前视频播放进度,不然不会保存播放进度---> userPlayer.setTag(getAdapterPosition());
4.demo:
public class VideoAdapter extends RecyclerView.Adapter<VideoAdapter.VideoViewHolder> {
.......
@Override
public VideoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_video1, parent, false);
return new VideoViewHolder(itemView);
}
@Override
public void onBindViewHolder(VideoViewHolder holder, int position) {
String video = mVideoList.get(position);
holder.bindData(video);
}
public class VideoViewHolder extends RecyclerView.ViewHolder {
ManualPlayer userPlayer;
VideoPlayerView playerView;
public VideoViewHolder(View itemView) {
super(itemView);
//初始化控件
playerView = (VideoPlayerView) itemView.findViewById(R.id.item_exo_player_view);
userPlayer = new ManualPlayer((Activity) mContext, playerView);
}
/***绑定数据源***/
public void bindData(String videoBean) {
userPlayer.setTitles("" + getAdapterPosition());
userPlayer.setPlayUri(videoBean);
//设置列表item播放当前视频播放进度.不然不会保存视频播放进度
userPlayer.setTag(helper.getAdapterPosition());
Glide.with(mContext) .load("....") .into(playerView.getPreviewImage());
}
}
2.列表播放周期方法 列表在Activity或者Fragment 实现相应周期方法
在viewPager使用,不要在实现 Fragment onDestroy()方法周期, onPause()也会释放资源。 onDestroy 用户页面销毁处理,不是释放资源. onDestroy 用户页面销毁处理,不是释放资源. onDestroy 用户页面销毁处理,不是释放资源.
@Override
protected void onPause() {
super.onPause();
VideoPlayerManager.getInstance().onPause();
}
@Override
protected void onResume() {
super.onResume();
VideoPlayerManager.getInstance().onResume();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
//横竖屏切换
VideoPlayerManager.getInstance().onConfigurationChanged(newConfig);
super.onConfigurationChanged(newConfig);
}
@Override
protected void onDestroy() {
super.onDestroy();
VideoPlayerManager.getInstance().onDestroy();
}
@Override
public void onBackPressed() {
//返回监听类
if (VideoPlayerManager.getInstance().onBackPressed()){
finish();
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。