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

Bag*_*oso 9 android exoplayer

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

Kri*_*hna 19

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

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

<style name="ExoMediaButton.Next">
    <item name="android:visibility">gone</item>
</style>
Run Code Online (Sandbox Code Playgroud)


Nev*_*ore 11

您将需要一个自定义布局exo_playback_control_view.xml文件,exoplayer默认情况下该文件用于对控件视图进行膨胀.定义自定义布局exo_playback_control_view并使用某些ids非常重要

可以在源代码release-v2或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"/>
Run Code Online (Sandbox Code Playgroud)


媒体上 还有一个帖子,对定制有很大的帮助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>
Run Code Online (Sandbox Code Playgroud)

注意ids是必需的

  • 我试图创建一个名为exo_playback_control_view.xml的新布局.因为我只需要删除next-prev按钮,所以我只是从原始xml文件复制并删除我不需要的标记.但是,当我执行我的应用程序时,我得到了错误的类com.google.android.exoplayer2.ui.DefaultTimeBar.我使用Proguard,但由于它是在调试,我认为它不应该是一个问题不是吗? (2认同)

Jea*_*her 6

exoplayer 的 PlayerView 类有两个方法来隐藏它们

    playerView.setShowNextButton(showNextPrevButtons)
    playerView.setShowPreviousButton(showNextPrevButtons)
Run Code Online (Sandbox Code Playgroud)


小智 5

在 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>
Run Code Online (Sandbox Code Playgroud)