首页 > 解决方案 > How can i stop exoplayer in viewpager2 on swipe

问题描述

I am building a simple app in which I stream videos from my firebase to my app which is like TikTok. For which I use Exoplayer but Exoplayer plays all videos at the same time and does not stop on swipe in viewpager2.

Video of the problem - https://youtu.be/TJQ6w4ZDfEE

Here is my code of viewpageradapter -

 public myviewholder(@NonNull View itemView) {
        super(itemView);

        imageView = (ImageView) itemView.findViewById(R.id.imageView);
        title = (TextView) itemView.findViewById(R.id.textVideoTitle);
        desc = (TextView) itemView.findViewById(R.id.textVideoDescription);
        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
    }

    void setdata(final Post obj) {
        title.setText(obj.getCaption());
        desc.setText(obj.getCaption());
        fabvideo.setLabelText(obj.getPostid());

                simpleExoPlayer = new SimpleExoPlayer.Builder(this).build();
                playerView = findViewById(R.id.exoPlayerView);
                playerView.setPlayer(simpleExoPlayer);
                MediaItem mediaItem = MediaItem.fromUri(obj.getVideourl);
                simpleExoPlayer.addMediaItem(mediaItem);
                simpleExoPlayer.prepare();
                simpleExoPlayer.setPlayWhenReady(true);
                                                          }

Here is the code of fragment where I used viewPager2 -

    public View onCreateView(@NonNull LayoutInflater inflater,
                         ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_newsorted,container,false);
    getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

    ViewPager2 viewPager2 = (ViewPager2) v.findViewById(R.id.vpager);

    DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Posts");

    FirebaseRecyclerOptions<Post> options =
            new FirebaseRecyclerOptions.Builder<Post>()
                    .setQuery(query, Post.class)
                    .build();

    adapter=new Likedsortedadapter(options,getContext());
    viewPager2.setAdapter(adapter);

    return v;
}

@Override
public void onStart() {
    super.onStart();
    adapter.startListening();
}

@Override
public void onStop() {
    super.onStop();
    adapter.stopListening();
}

标签: androidandroid-studioandroid-videoviewexoplayerandroid-viewpager2

解决方案


推荐阅读