GSYVideoPlayer icon indicating copy to clipboard operation
GSYVideoPlayer copied to clipboard

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

Open Sparrowyu opened this issue 2 years ago • 17 comments

问题描述:

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

问题机型/系统:

真机 小米手机11,安卓11

GSY依赖版本

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

Demo中的复现步骤

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

Sparrowyu avatar Oct 28 '21 13:10 Sparrowyu

我这边用redmi note10 没发现卡顿

CarGuo avatar Nov 02 '21 00:11 CarGuo

我这边用redmi note10 没发现卡顿

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

Sparrowyu avatar Nov 04 '21 09:11 Sparrowyu

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

MarkLDS avatar Dec 03 '21 08:12 MarkLDS

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

CarGuo avatar Dec 03 '21 17:12 CarGuo

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

Sparrowyu avatar Dec 24 '21 09:12 Sparrowyu

试试这样可不可以解决,在页面滑动完成之后,使用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和小米手机上没有出现过卡顿了。

pinguoooo avatar Jun 07 '22 06:06 pinguoooo

我就是这么解决的

kokobebekoko avatar Jul 01 '22 07:07 kokobebekoko

我也有这个问题

szyyycs avatar Jul 04 '22 01:07 szyyycs

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

Sparrowyu avatar Jul 05 '22 01:07 Sparrowyu

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

CarGuo avatar Jul 05 '22 01:07 CarGuo

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

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

szyyycs avatar Jul 05 '22 02:07 szyyycs

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

JoeVX avatar Aug 17 '22 03:08 JoeVX

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

yuanhua0608 avatar Mar 08 '23 01:03 yuanhua0608

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

我用的多播放器

ilovexy2tom avatar Mar 17 '23 08:03 ilovexy2tom

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

我用的多播放器

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

yuanhua0608 avatar Apr 11 '23 01:04 yuanhua0608

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

Minerva47 avatar Sep 13 '23 11:09 Minerva47

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

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

sceneren avatar Dec 28 '23 07:12 sceneren