我正在使用PlayFragment在AndroidTV中播放视频。我想隐藏控件,如play / pause / fastforward / progressbar。
我该怎么做?
如果有人知道那么请帮助。我正在使用以下样本:
[https://github.com/googlesamples/androidtv-Leanback.git][1]
PlayBackFragment中有一些类似
的方法setControlsOverlayAutoHideEnabled(false)
hideControlsOverlay(true);
但没有效果。 anyonen可以帮助我吗?
答案 0 :(得分:1)
要在视频首次启动时隐藏控件,您需要告知胶水和碎片不要显示它们。
如果查看PlaybackTransportControls的来源,在第317行,控件会检查是否启用了淡入淡出并且有一个主机。如果是这样,那么它会根据玩家是否正在播放来更新控件的可见性。
要测试,请在leanback示例中查找回放片段中的initializePlayer()
方法。在line 166,它启动播放器。当游戏发生时,胶水告诉主机(谁与片段对话)并显示控件。要防止显示控件,请设置胶水和片段以不显示它们:
private void initializePlayer() {
...
// Setup the glue and fragment to not show controls when play starts.
mPlayerGlue.setControlsOverlayAutoHideEnabled(false);
hideControlsOverlay(false);
play(mVideo);
...
}
答案 1 :(得分:1)
视频片段本身负责显示和隐藏控件,由于您的片段继承自VideoSupportFragment
/ VideoFragment
,因此您可以简单地覆盖方法showControlsOverlay(..)
并将其保留为空白(< em>不要调用超级方法)
@Override
public void showControlsOverlay(boolean runAnimation) {
// We will do nothing here, and thus controls will never be shown
}
设置播放器时,您还必须拨打一次hideControlsOverlay(false)
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
hideControlsOverlay(false);
}
答案 2 :(得分:0)
您是否尝试过调用fadeOut()
中的PlaybackFragment
?