Android YouTubePlayerView滚动时显示黑色轮廓
这个问题以前曾被问过,但我想提供更多的信息。 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(这些都应该是正的) 这是我的代码: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
<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在所有平台上都能正确处理这个问题,暂停或发布,而不是给出黑色的大纲。