[英]ExoPlayer not playing onViewRecycled when I back to the previous view ViewPager2
我正在使用帶有回收器視圖適配器和設置的 ViewPager2,如下所示
當我滑動屏幕並更改索引時,它對新索引的工作正常,但是當我轉到上一個索引時,它不會播放任何視頻,為什么? 有什么建議??
RecyclerViewAdapter.java
@Override
public void onViewDetachedFromWindow(@NonNull VideoPlayerViewHolder holder) {
super.onViewDetachedFromWindow(holder);
holder.pausePlayer();
holder.releasePlayer();
}
@Override
public void onViewAttachedToWindow(@NonNull VideoPlayerViewHolder holder) {
super.onViewAttachedToWindow(holder);
holder.startPlayer();
}
@Override
public void onViewRecycled(@NonNull VideoPlayerViewHolder holder) {
super.onViewRecycled(holder);
holder.startPlayer();
}
@Override
public void onBindViewHolder(@NonNull VideoPlayerViewHolder holder, int position) {
holder.setExoplayer(getItem(position).getUrl());
}
視圖持有者.java
public void startPlayer() {
player.setPlayWhenReady(true);
player.getPlaybackState();
}
public void pausePlayer() {
player.setPlayWhenReady(false);
player.getPlaybackState();
}
public void setExoplayer(String url) {
player = new SimpleExoPlayer.Builder(itemView.getContext()).build();
player.setRepeatMode(Player.REPEAT_MODE_ONE);
dataSourceFactory = new DefaultDataSourceFactory(itemView.getContext(),"exo-player");
mediaSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(Uri.parse(url));
player.prepare(mediaSource);
playerView.setPlayer(player); //need to transfer
player.seekTo(playbackPosition);
player.addListener(this);
}
public void releasePlayer() {
player.setPlayWhenReady(false);
player.release();
player.stop(true);
}
像這樣附加視圖時設置 Exoplayer
@Override
public void onViewAttachedToWindow(@NonNull VideoPlayerViewHolder holder) {
super.onViewAttachedToWindow(holder);
holder.setExoplayer();
holder.startPlayer();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.