如何从Android中的SimpleExoPlayerView中删除“下一个”和“上一个”按钮

时间:2017-04-27 07:33:52

标签: android exoplayer

我使用ExoPlayer在我的Android应用程序上播放音频,并使用SimpleExoPlayerView作为控制器。默认控制器有五个按钮,播放/暂停,前进,后退,下一个和上一个。我的应用程序只使用播放/暂停,前进和后退,所以我想从控制器中删除下一个和上一个按钮,但我无法找到如何使用SimpleExoPlayerView。我如何实现这一目标?

5 个答案:

答案 0 :(得分:17)

每个按钮都有默认样式。只需覆盖上一个和下一个按钮的样式,并添加可见性。
在style.xml中添加以下样式

<style name="ExoMediaButton.Previous">
    <item name="android:visibility">gone</item>
</style>

<style name="ExoMediaButton.Next">
    <item name="android:visibility">gone</item>
</style>

答案 1 :(得分:11)

您需要一个自定义布局exo_playback_control_view.xml文件,这是exoplayer默认查找控件视图的内容。 自定义布局的名称为exo_playback_control_view且使用了某些id

非常重要

可以在源代码here release-v2here dev-v2-r2.3.1 中看到默认控件(确保找到您正在使用的exoplayer版本)

您可以将该文件复制到res/layout目录中,并删除不需要的按钮,默认情况如下:

<ImageButton android:id="@id/exo_prev"
  style="@style/ExoMediaButton.Previous"/>

<ImageButton android:id="@id/exo_rew"
  style="@style/ExoMediaButton.Rewind"/>

<ImageButton android:id="@id/exo_play"
  style="@style/ExoMediaButton.Play"/>

<ImageButton android:id="@id/exo_pause"
  style="@style/ExoMediaButton.Pause"/>

<ImageButton android:id="@id/exo_ffwd"
  style="@style/ExoMediaButton.FastForward"/>

<ImageButton android:id="@id/exo_next"
  style="@style/ExoMediaButton.Next"/>

<小时/> 媒体上还有post,这对自定义exoplayer有很大帮助;作者写了一个自定义控件:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageButton android:id="@id/exo_play"
  android:layout_width="100dp"
  android:layout_height="100dp"
  android:layout_gravity="center"
  android:background="#CC000000"
  style="@style/ExoMediaButton.Play"/>

<ImageButton android:id="@id/exo_pause"
  android:layout_width="100dp"
  android:layout_height="100dp"
  android:layout_gravity="center"
  android:background="#CC000000"
  style="@style/ExoMediaButton.Pause"/>

</FrameLayout>

请注意id 必需

答案 2 :(得分:3)

在 style.xml 中尝试以下内容

    <style name="ExoMediaButton.Previous">
        <item name="android:layout_height">0dp</item>
        <item name="android:layout_width">0dp</item>
    </style>

    <style name="ExoMediaButton.Next">
        <item name="android:layout_height">0dp</item>
        <item name="android:layout_width">0dp</item>
    </style>

答案 3 :(得分:0)

请注意,按钮的可见性已动态更改
因此最好将它们的大小设置为零以完全隐藏

    <ImageButton android:id="@id/exo_prev"
        android:layout_width="0dp"
        android:layout_height="0dp"
        style="@style/ExoMediaButton.Previous"
        android:visibility="gone"/>

    <ImageButton android:id="@id/exo_rew"
        style="@style/ExoMediaButton.Rewind"/>

    <ImageButton android:id="@id/exo_shuffle"
        style="@style/ExoMediaButton.Shuffle"
        android:visibility="gone"/>

    <ImageButton android:id="@id/exo_repeat_toggle"
        style="@style/ExoMediaButton"
        android:visibility="gone"/>

    <ImageButton android:id="@id/exo_play"
        style="@style/ExoMediaButton.Play"/>

    <ImageButton android:id="@id/exo_pause"
        style="@style/ExoMediaButton.Pause"/>

    <ImageButton android:id="@id/exo_ffwd"
        style="@style/ExoMediaButton.FastForward"/>

    <ImageButton android:id="@id/exo_next"
        android:layout_width="0dp"
        android:layout_height="0dp"
        style="@style/ExoMediaButton.Next"
        android:visibility="gone"/>

    <ImageButton android:id="@+id/exo_fullscreen"
        android:src="@drawable/fullscreen"
        style="@style/ExoMediaButton"/>

    <ImageButton android:id="@+id/exo_vr"
        style="@style/ExoMediaButton"
        android:visibility="gone"/>

答案 4 :(得分:0)

exoplayer 的 PlayerView 类有两种方法可以隐藏它们

    playerView.setShowNextButton(showNextPrevButtons)
    playerView.setShowPreviousButton(showNextPrevButtons)