在布局层次结构中叠加在YouTubePlayerFragment或YouTubePlayerView上方的视图会导致播放立即暂停

时间:2012-12-23 19:35:29

标签: android youtube-api youtubeplayer

我正在使用YouTube Android播放器API并希望在YouTubePlayerFragment之上叠加视图,以便在播放视频上方显示上下文信息和控件。

不幸的是,只要在布局层次结构中的播放器上方堆叠了一个或多个视图,回放就无法在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进行各种布局配置,但问题始终相同。我意识到这个API已经发布为“实验性”,但如果这是一个已知问题,它是很多实现的相当主要的阻止。有没有人有一个好的解决方案或解决方法?

5 个答案:

答案 0 :(得分:15)

杰夫 - 这是按设计工作的。我们不支持在任何YouTube播放器(包括YouTube Android播放器)上叠加。检测到叠加时,播放停止,日志包含有助于调试问题的信息。 我们支持动作栏叠加,看一下这个演示以了解更多信息:https://developers.google.com/youtube/android/player/sample-applications#Overlay_ActionBar_Demo

答案 1 :(得分:4)

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

答案 2 :(得分:3)

无法在Google指定的播放器上方添加按钮作为叠加层,否则播放器将停止播放:

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

  

请注意,在播放视频时,此视图的最小尺寸为   200x110 dp。如果您使视图更小,视频将   自动停止播放。此外,不允许覆盖   在视频播放时查看其他视图。

     

此视图不支持填充。为了达到同样的效果,请换一下   另一个ViewGroup中的视图或给它边距。

YouTubePlayer也不支持填充。

要在视频上叠加您的观看次数,我建议您使用 ExoPlayer , 它不是android sdk的一部分,但谷歌推荐它并包含在android开发者文档中:

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

还可以提到Exoplayer用于youtube应用程序。

答案 3 :(得分:0)

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

我遇到了一个问题,我无法找到有关如何使用自定义布局重新实现搜索栏的良好资源。

答案 4 :(得分:0)

Volla !!我有一个场景,这个问题出现在设备棒棒糖及以上,这是因为状态栏。我隐藏状态栏问题解决了。只是把它写成答案以防万一它可以帮助别人:)