Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在播放demo的ViewPager2Activity的仿抖音上下滑列表的时候,卡顿明显 #3441

Open
Sparrowyu opened this issue Oct 28, 2021 · 17 comments

Comments

@Sparrowyu
Copy link

问题描述:

在播放demo的ViewPager2Activity的仿抖音上下滑列表的时候,上下滑动,列表会非常卡顿,我集成到我的项目中也会卡顿,所有的手机都会卡,但是小米11卡顿的特别明显(如果播放出错,上下滑动不播放视频的时候就不卡了,说明本身的viewpager2是不卡的)

问题机型/系统:

真机 小米手机11,安卓11

GSY依赖版本

com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer:v8.1.6-jitpack'

Demo中的复现步骤

Demo中的ViewPager2Activity页面打开后上下滑就会出现这个问题。

@CarGuo
Copy link
Owner

CarGuo commented Nov 2, 2021

我这边用redmi note10 没发现卡顿

@Sparrowyu
Copy link
Author

我这边用redmi note10 没发现卡顿

我用的也是红米note10,确实没有明显卡顿(或者说不太明显),但是小米11真机就特别卡,如果可能的话,可以云真机或者真机试一下

@MarkLDS
Copy link

MarkLDS commented Dec 3, 2021

我也遇到了 小米10播放本地8K的视频的时候特别卡 但切换到EXO内核就没问题了

@CarGuo
Copy link
Owner

CarGuo commented Dec 3, 2021

8k本地视频,ijk软解码顶住不的,纯cpu

@Sparrowyu
Copy link
Author

我这个问题和你说的还不太一样,我这个是直接demo就会上下滑卡顿

@pinguoooo
Copy link

试试这样可不可以解决,在页面滑动完成之后,使用postDelay延迟200-300毫秒播放视频。
例如:

    private void initViewPager() {
        videoViewPagerAdapter = new VideoViewPagerAdapter(CircleVideoActivity.this, R.layout.item_video_detail, dataList);
        vp_video.setOrientation(ViewPager2.ORIENTATION_VERTICAL);
        vp_video.setAdapter(videoViewPagerAdapter);
        vp_video.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
                
                LogUtils.d("onPageSelected: " + position);
                // 大于0说明有播放
                int playPosition = GSYVideoManager.instance().getPlayPosition();
                if (playPosition >= 0) {
                    // 对应的播放列表TAG
                    playPosition(position);
                }
            }
        });
        //默认播放当前页
        playPosition(0);
        // 提前加载一页
        vp_video.setOffscreenPageLimit(1);
    }

    /**
     * 播放视频
     *
     * @param position 在列表中的下标位置
     */
    private void playPosition(int position) {
        //延迟播放,防止卡顿
        vp_video.postDelayed(new Runnable() {
            @Override
            public void run() {
                SampleCoverVideo player = videoViewPagerAdapter.getPlayer(position);
                if (player != null) {
                    player.startPlayLogic();
                }
            }
        }, 300);
    }

亲测在自己现有的有的OPPO和小米手机上没有出现过卡顿了。

@kokobebekoko
Copy link

我就是这么解决的

@szyyycs
Copy link

szyyycs commented Jul 4, 2022

我也有这个问题

@Sparrowyu
Copy link
Author

我之前就是延迟解决卡顿的,延迟没有解决根本问题,并且会导致播放慢了200ms,主要还是要从release里面做一些优化

@CarGuo
Copy link
Owner

CarGuo commented Jul 5, 2022

@Sparrowyu 其实 ijk 内核的 release 还好,exo 内部要求释放和创建再同个线程

@szyyycs
Copy link

szyyycs commented Jul 5, 2022

我之前就是延迟解决卡顿的,延迟没有解决根本问题,并且会导致播放慢了200ms,主要还是要从release里面做一些优化

我好像解决了,内核换成EXO并且在viewpager的pageselect里加上GSYVideoManager.releaseAllVideos()
现在滑动十分顺滑~

@JoeVX
Copy link

JoeVX commented Aug 17, 2022

我也遇到了,VP2界面打开,一滑动就直接卡住了,也不能返回,不是卡顿,直接卡死了。MI12 pro

@yuanhua0608
Copy link

其实我想问仿抖音的上下滑列表的功能中如何实现视频的预加载的....

@ilovexy2tom
Copy link

其实我想问仿抖音的上下滑列表的功能中如何实现视频的预加载的....

我用的多播放器

@yuanhua0608
Copy link

其实我想问仿抖音的上下滑列表的功能中如何实现视频的预加载的....

我用的多播放器

你好,我使用多播放器为什么滑到第二个视频的时候就会黑屏呢,加载不出来

@Minerva47
Copy link

同问 我用的viewpager2+fragment实现的仿抖音上下滑列表,然后会出现一个bug就是下滑是图片的时候上去是视频的时候,下到图片上去视频就会只放声音不放视频 然后用上面的大哥说的在viewpager的pageselect里加上GSYVideoManager.releaseAllVideos() 解决了,why?

@sceneren
Copy link

我也遇到了,VP2界面打开,一滑动就直接卡住了,也不能返回,不是卡顿,直接卡死了。军情12 pro

我也遇到了,一加10 pro,ColorOS 14.0,滑动的时候大概率出现有声音无画面的情况,然后界面就卡死了,google pixel 7 Android14 不会

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests