here之前已经提出了这个问题,但我想提供更多信息。 滚动时,YouTubePlayerView通常会显示黑色轮廓,这可能在暂停和更改旋转后发生。 这似乎发生在我滚动并且它被覆盖时,所以它暂停(以防止控件被隐藏)。暂停不是问题,因为用户没有观看视频而是黑屏。 这种情况发生在运行Android 4.0.3的Galaxy Tab 2上,也在4.1.2上的Xperia T上,运行4.2.2的One X和运行2.2.2的Desire上发生问题。
更多信息: 暂停的视频图像在向下滚动时显示为在屏幕顶部拉伸(在Xperia T上)。当黑色字段看起来达到最小尺寸时,它会开始滚动浏览其他内容。
警告文字 由于未经授权覆盖播放器,YouTube视频播放停止。 YouTubePlayerView未包含在其祖先android.widget.ScrollView@41290ca0中。祖先边缘与YouTubePlayerView边缘之间的距离为:left:20,top:0,right:20,bottom:-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将重新初始化并继续播放视频。
答案 0 :(得分: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();
}
}