SimpleExoPlayerView自定义,以保持背景透明和控件始终可见

时间:2018-01-26 14:52:01

标签: android android-layout exoplayer exoplayer2.x

我使用ExoPlayer播放音频歌曲,以下是我SimpleExoPlayerView的样子:

<com.google.android.exoplayer2.ui.SimpleExoPlayerView
  android:id="@+id/video_view"
  android:layout_width="match_parent"
  android:layout_height="wrap_content" />

结果:

enter image description here

要求:

  1. 如何将SimpleExoPlayerView背景保持为透明,而不是黑色背景 [至今仍然如此](见上文) 截图

  2. 如何让SimpleExoPlayerView始终可见(因为它仍会显示然后消失,直到我再次触摸)

3 个答案:

答案 0 :(得分:5)

您可以将show_timeout设置为0以避免隐藏控件(也可能希望将hide_on_touch设置为false)

<com.google.android.exoplayer2.ui.SimpleExoPlayerView
           android:id="@+id/video_view"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           app:show_timeout="0"
           app:hide_on_touch="false"
           app:controller_layout_id="@layout/exo_playback_control_view" />

您还可以定义自己的controller_layout_id布局,该布局应该为您提供背景等所需的所有控件(可以使用默认值作为起点)。

答案 1 :(得分:0)

在您的onCreate()方法上尝试以下代码:

 int resId = getResources().getIdentifier("exo_shutter", "id", getPackageName());
 findViewById(resId).setBackgroundColor(ContextCompat.getColor(this, R.color.transparent));

答案 2 :(得分:0)

关于此问题的“保持背景透明”方面,您可能将控件背景的背景设置为透明,但是在播放控件视图上仍然看到黑色背景。

原因是...。不是您的控件背景是黑色的。

仍然是布局中的织补快门视图/背景为黑色

要更改XML,请在PlayerView xml中添加以下属性:

app:shutter_background_color="@color/transparent"

要完全删除视图,您可以执行以下操作:

((ViewGroup)shutterView.getParent()).removeView(shutterView);