2016-09-15 57 views
0

Im使用Exoplayer在我的Android應用程序中播放視頻。我想將播放/暫停按鈕放在視頻播放器視圖的中間(如下圖所示)。如何實現這一點 enter image description hereAndroid ExoPlayer,播放/暫停按鈕在VideoPlayer中間

我只是膨脹一個新的佈局,而不是Android的默認mediaController。我想知道是不是得到下面的一種形象佈局

media_controller.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_gravity="center" 
android:background="#CC000000" 
android:orientation="vertical"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingTop="4dip" 
    android:orientation="horizontal"> 


    <ImageButton android:id="@+id/pause" 
     style="@android:style/MediaButton.Play" 
     android:layout_gravity="center_horizontal" 
     android:contentDescription="play/pause" /> 

    <TextView android:id="@+id/time_current" 
     android:textSize="14sp" 
     android:textStyle="bold" 
     android:paddingTop="4dip" 
     android:paddingLeft="4dip" 
     android:layout_gravity="center_horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingRight="4dip" /> 

    <SeekBar 
     android:id="@+id/mediacontroller_progress" 
     style="?android:attr/progressBarStyleHorizontal" 
     android:layout_width="0dip" 
     android:layout_weight="1" 
     android:layout_height="32dip" /> 

    <TextView android:id="@+id/time" 
     android:textSize="14sp" 
     android:textStyle="bold" 
     android:paddingTop="4dip" 
     android:paddingRight="4dip" 
     android:layout_gravity="center_horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingLeft="4dip" /> 

</LinearLayout> 

+0

你試圖創建一個按鈕,並將它們添加到您的佈局? –

+0

我已經嘗試過了,但按鈕即將到達底部 –

+0

您可以發佈您的佈局並向我展示您準確添加這些按鈕的位置嗎? –

回答

2

這樣就可以實現在Exoplayer 2.1.0的正確方法。 Exoplayer庫有一種方法來定義我們自己的媒體控制器播放的自定義佈局,它被稱爲PlayBackControllerView。它可以通過覆蓋佈局文件來實現。要自定義這些佈局,應用程序可以在自己的res/layout *目錄中定義具有相同名稱的佈局文件。這些佈局文件會覆蓋ExoPlayer庫提供的佈局文件。我們可以通過在應用程序的res/layout目錄中創建exo_playback_control_view.xml文件來實現此目的。

exo_playback_control_view.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="bottom" 
    android:layoutDirection="ltr" 
    android:background="#22000000"> 

    <LinearLayout 
     android:id="@+id/play_pause_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:paddingTop="4dp" 
     android:orientation="horizontal" 
     android:gravity="center"> 

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

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

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="4dp" 
     android:gravity="center_vertical" 
     android:layout_alignParentBottom="true" 
     android:orientation="horizontal"> 

     <TextView android:id="@id/exo_position" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="14sp" 
      android:textStyle="bold" 
      android:paddingLeft="4dp" 
      android:paddingRight="4dp" 
      android:includeFontPadding="false" 
      android:textColor="#FFBEBEBE"/> 

     <SeekBar android:id="@id/exo_progress" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="32dp" 
      android:focusable="false" 
      style="?android:attr/progressBarStyleHorizontal"/> 

     <TextView android:id="@id/exo_duration" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="14sp" 
      android:textStyle="bold" 
      android:paddingLeft="4dp" 
      android:paddingRight="4dp" 
      android:includeFontPadding="false" 
      android:textColor="#FFBEBEBE"/> 

    </LinearLayout> 

</RelativeLayout> 

編號:Customizing Exoplayer's UI components