Android YouTubePlayerView滚动时显示黑色轮廓

Android YouTubePlayerView滚动时显示黑色轮廓,android,youtube-api,android-youtube-api,youtube-data-api,Android,Youtube Api,Android Youtube Api,Youtube Data Api,这个问题以前曾被问过,但我想提供更多的信息。 YouTubePlayerView在滚动时通常会显示黑色轮廓,这可能发生在暂停和更改旋转后。 这似乎发生在我滚动时,它被覆盖,所以它暂停(以防止控件被隐藏)。暂停不是问题,因为用户没有观看视频,但黑屏是。 这发生在运行安卓4.0.3的Galaxy Tab 2上,也发生在运行4.1.2的Xperia T上,发生在运行4.2.2的One X上,运行Desire 2.2.2不会出现问题 更多信息: 暂停的视频图像在向下滚动的同时,似乎在屏幕顶部拉伸(在Xp

这个问题以前曾被问过,但我想提供更多的信息。 YouTubePlayerView在滚动时通常会显示黑色轮廓,这可能发生在暂停和更改旋转后。 这似乎发生在我滚动时,它被覆盖,所以它暂停(以防止控件被隐藏)。暂停不是问题,因为用户没有观看视频,但黑屏是。 这发生在运行安卓4.0.3的Galaxy Tab 2上,也发生在运行4.1.2的Xperia T上,发生在运行4.2.2的One X上,运行Desire 2.2.2不会出现问题

更多信息: 暂停的视频图像在向下滚动的同时,似乎在屏幕顶部拉伸(在Xperia T上)。当黑色区域看起来达到其最小大小时,它开始在其他内容上滚动

警告文本: YouTube视频播放停止,因为未经授权的覆盖在播放器顶部。YouTubePlayerView不包含在其祖先android.widget中。ScrollView@41290ca0. 祖先的边与YouTubePlayerView的边之间的距离为:左:20,上:0,右:20,下:-11(这些都应该是正的)

这是我的代码:

    <TextView
        android:id="@+id/textView"
        android:gravity="center"
        android:textSize="25sp"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="@string/header" />

   <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="0dp" >

        <LinearLayout
            android:gravity="center_horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" > <!-- In a linear layout so it is possible to set it in the middle -->

            <com.google.android.youtube.player.YouTubePlayerView
                 android:id="@+id/youtubeplayer"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:visibility="gone" >
             </com.google.android.youtube.player.YouTubePlayerView>
        </LinearLayout>
   </ScrollView>

所以我的问题是,有没有办法摆脱或防止黑斑的出现


目前我有一个大的解决方法,当用户开始滚动时,youtubeplayer将被释放,一个带有播放按钮的图像将被取代,当用户按下按钮时,youtubeplayer将重新初始化并继续视频。

实际上,这个问题有一个解决方法。您需要在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();
            } 
    }
scrollView.getViewTreeObserver()
.addOnScrollChangedListener(()->{
onScroll(scrollView.getScrollY());
}
});
私用void onScroll(内部位置)
{ 

如果(position>300&&position[请参阅我在这篇文章中的回复,也许可以帮到你][1][1]:谢谢你的时间,我知道这里不允许浏览,但客户需要它。但是我希望youtube在所有平台上都能正确处理这个问题,暂停或发布,而不是给出黑色的大纲。