1

我已经为 android 实现了 youtube 播放器 api,当我将 youtube 播放器放在滚动视图中并开始播放视频时,当我暂停视频并上下滚动屏幕时,它带有黑色补丁。

我不明白为什么黑色补丁会过来?我尝试截屏,但屏幕截图没有黑色补丁。

下面是我的代码:

<com.google.android.youtube.player.YouTubePlayerView
            android:id="@+id/youtube_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
4

2 回答 2

2

出现黑色补丁是因为视频视图使用了 SurfaceView。真实的视图是一个“黑洞”,视频是由硬件覆盖的。对视图布局的任何直接操作都会导致此视图堆叠不同步:您实际上看到的是 Android 的内衣,并且您会看到不同的手机/平板电脑的反应不同,例如在我的旧 Galaxy 选项卡中,这种效果非常明显,而较新的,更快的亚马逊 Kindles 做得更好。

你对此无能为力。这与 Android 的图形内部有关,他们需要修复引擎以允许更好地滚动表面视图。

于 2014-04-14T07:52:39.530 回答
0

实际上有一个解决这个问题的方法。您需要在 ScrollView 上放置一个侦听器并捕捉 Y 距离。当 Y 距离接近 YoutubePlayerView 的高度时,您需要暂停视频。

scrollView.getViewTreeObserver()
                .addOnScrollChangedListener(() -> {
                    onScroll(scrollView.getScrollY()); 
                    }
                });


private void onScroll(int position)
    { 
            if (position>300 && position <400)
            {
                canPauseOnScroll=false; 
            } 

            if (canPauseOnScroll)
            {
                canPauseOnScroll=false;
                ytHelper.getPlayer().pause();
            } 
    }
于 2020-01-12T04:15:21.270 回答