SimpleExoPlayerView 自定义以保持背景透明和控件始终可见
SimpleExoPlayerView customization to keep background transparent and controls always visible
我正在使用 ExoPlayer
播放音频歌曲,这是我的 SimpleExoPlayerView
的样子:
<com.google.android.exoplayer2.ui.SimpleExoPlayerView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
结果:
要求:
如何将SimpleExoPlayerView
背景保持为透明,而不是黑色背景[静止,我得到](见上面截图)
如何让SimpleExoPlayerView
始终可见(静止不动,然后消失,直到我再次触摸)
您可以将 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
布局,这样您就可以控制背景等(可以使用默认布局作为起点)。
在您的 onCreate() 方法上尝试此代码:
int resId = getResources().getIdentifier("exo_shutter", "id", getPackageName());
findViewById(resId).setBackgroundColor(ContextCompat.getColor(this, R.color.transparent));
关于这个问题的 "keep background transparent" 方面,您可能将控件背景的背景设置为透明,但在播放控件视图中仍然看到黑色背景。
原因是......不是你的控件背景是黑色的。
布局中仍然可见/具有黑色背景的该死的 shutterView
要在 XML 中进行更改,请将以下属性添加到您的 PlayerView xml:
app:shutter_background_color="@color/transparent"
要完全删除视图,您可以这样做:
((ViewGroup)shutterView.getParent()).removeView(shutterView);
我正在使用 ExoPlayer
播放音频歌曲,这是我的 SimpleExoPlayerView
的样子:
<com.google.android.exoplayer2.ui.SimpleExoPlayerView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
结果:
要求:
如何将
SimpleExoPlayerView
背景保持为透明,而不是黑色背景[静止,我得到](见上面截图)如何让
SimpleExoPlayerView
始终可见(静止不动,然后消失,直到我再次触摸)
您可以将 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
布局,这样您就可以控制背景等(可以使用默认布局作为起点)。
在您的 onCreate() 方法上尝试此代码:
int resId = getResources().getIdentifier("exo_shutter", "id", getPackageName());
findViewById(resId).setBackgroundColor(ContextCompat.getColor(this, R.color.transparent));
关于这个问题的 "keep background transparent" 方面,您可能将控件背景的背景设置为透明,但在播放控件视图中仍然看到黑色背景。
原因是......不是你的控件背景是黑色的。
布局中仍然可见/具有黑色背景的该死的 shutterView
要在 XML 中进行更改,请将以下属性添加到您的 PlayerView xml:
app:shutter_background_color="@color/transparent"
要完全删除视图,您可以这样做:
((ViewGroup)shutterView.getParent()).removeView(shutterView);