我正在使用YouTube Android播放器API并希望在YouTubePlayerFragment
之上叠加视图,以便在播放视频上方显示上下文信息和控件。
不幸的是,只要在布局层次结构中的播放器上方堆叠了一个或多个视图,回放就无法在YouTubePlayerFragment
或YouTubePlayerView
中正常工作。在立即暂停之前,播放时间不到半秒。
使用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>
我已尝试使用FrameLayout
和RelativeLayout
进行各种布局配置,但问题始终相同。我意识到这个API已经发布为“实验性”,但如果这是一个已知问题,它是很多实现的相当主要的阻止。有没有人有一个好的解决方案或解决方法?
答案 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指定的播放器上方添加按钮作为叠加层,否则播放器将停止播放:
请注意,在播放视频时,此视图的最小尺寸为 200x110 dp。如果您使视图更小,视频将 自动停止播放。此外,不允许覆盖 在视频播放时查看其他视图。
此视图不支持填充。为了达到同样的效果,请换一下 另一个ViewGroup中的视图或给它边距。
YouTubePlayer也不支持填充。
要在视频上叠加您的观看次数,我建议您使用 ExoPlayer , 它不是android sdk的一部分,但谷歌推荐它并包含在android开发者文档中:
http://google.github.io/ExoPlayer/
还可以提到Exoplayer用于youtube应用程序。
答案 3 :(得分:0)
您可以将播放器主题设置为YouTubePlayer.PlayerStyle.CHROMELESS,然后在下面实现您自己的控件。
我遇到了一个问题,我无法找到有关如何使用自定义布局重新实现搜索栏的良好资源。
答案 4 :(得分:0)