黑色补丁youtube android api

问题描述 投票:1回答:2

[我已经实现了android的youtube播放器api,当我将youtube播放器放到scrollview中并开始播放视频时,我暂停视频并在屏幕上上下滚动的那一刻都有黑色补丁。

我不知道为什么黑补丁要来了?我试图捕获屏幕,但屏幕截图没有黑补丁。

下面是我的代码:

<com.google.android.youtube.player.YouTubePlayerView
            android:id="@+id/youtube_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
android android-youtube-api
2个回答
2
投票
之所以会出现黑色补丁,是因为视频视图使用了SurfaceView。真实的视图是一个“黑洞”,视频是由硬件构成的。对视图布局的任何直接操作都会导致该视图堆栈不同步:您实际上看到的是Android的内裤,并且您会看到不同的手机/平板电脑做出不同的反应,例如在我较旧的银河标签中,这种效果非常明显,而较新的,更快的Amazon Kindle可以做得更好。

您无能为力。这与Android的图形内部结构有关,他们需要修复引擎以更好地滚动Surfaceviews。


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

scrollView.getViewTreeObserver() .addOnScrollChangedListener(() -> { onScroll(scrollView.getScrollY()); } }); private void onScroll(int position) { if (showTransparent) { if (position<500) { canPauseOnScroll=false; } else if (position>500) { canPauseOnScroll=true; } if (canPauseOnScroll) { canPauseOnScroll=false; ytHelper.getPlayer().pause(); } } }

© www.soinside.com 2019 - 2024. All rights reserved.