覆盖在布局分层结构中的YouTubePlayerFragment或YouTubePlayerView上方的视图会使播放立即暂停

我使用的是YouTube Android播放器API,并希望在YouTubePlayerFragment顶部覆盖视图,以在播放video上方显示上下文信息和控件。

不幸的是,如果在布局层次结构中播放器上方存在一个或多个视图, YouTubePlayerFragmentYouTubePlayerView回放似乎无法正常工作。 在立即暂停之前播放不到半秒。

该问题可以通过使用SDK附带的Simple PlayerFragment演示的以下布局来重现:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:name="com.google.android.youtube.player.YouTubePlayerFragment" android:id="@+id/youtube_fragment" android:layout_width="match_parent" android:layout_height="match_parent"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="@android:style/TextAppearance.Small" android:layout_alignParentTop="true" android:text="@string/playerfragment_text"/> </RelativeLayout> 

我已经尝试使用FrameLayoutRelativeLayout各种布局configuration,但问题始终是相同的。 我意识到这个API已经发布为“实验”,但如果这是一个已知的问题,它是一个相当大的阻碍许多实现。 有没有人有一个很好的解决scheme或解决方法?

杰夫 – 这个按照devise工作。 不支持在我们的任何YouTube播放器(包括YouTube Android播放器)之上的叠加层。 检测到叠加时,播放停止,并且日志包含有助于debugging问题的信息。 我们支持动作栏覆盖,看看这个演示了解更多: https : //developers.google.com/youtube/android/player/sample-applications#Overlay_ActionBar_Demo 。

Youtube播放器不允许任何视图覆盖它。 只需使用setVisibility(View.GONE)对所有视图进行覆盖即可。

无法将button添加到Google指定的播放器上方,否则播放器将停止播放:

https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerView

请注意,在播放video时,此视图的最小尺寸为200×110 dp。 如果您将视图缩小,video将自动停止播放。 此外,在播放video时,不允许将视图与其他视图重叠。

这个视图不支持填充。 为了达到同样的效果,将视图包装在另一个ViewGroup中或给它留出空白。

YouTubePlayer也不支持填充。

为了覆盖你对video的看法,我会推荐你​​使用ExoPlayer ,它不是android sdk的一部分,但它是由google推荐的,并包含在android开发者文档中:

http://google.github.io/ExoPlayer/

这也是很好的提及,Exoplayer是用于YouTube的应用程序。

您可以将播放器主题设置为YouTubePlayer.PlayerStyle.CHROMELESS,然后在下面实现您自己的控件。

我有一个问题,我找不到一个好的资源,如何重新实现自定义布局的search栏。

Volla !! 我有一个情况下,这个问题是在设备棒棒糖和以上,这是因为状态栏。 我隐藏了状态栏问题解决。 只是写它作为一个答案,如果它可以帮助别人:)