2016-09-15 24 views
0

私のAndroid Appで動画を再生するためにExoplayerを使用しています。再生/一時停止ボタンをビデオプレーヤービューの中央に配置したい(下の画像のように)。これを達成する方法 enter image description hereAndroid ExoPlayer、VideoPlayerの途中にある再生/一時停止ボタン

AndroidデフォルトのmediaControllerの代わりに新しいレイアウトを追加するだけです。イムは思っこれはExoplayer 2.1.0で達成することができる画像レイアウトの以下のようなもの

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ライブラリには、Media Controllerの再生用に独自のカスタムレイアウトを定義する方法があります。PlayBackControllerViewと呼ばれています。レイアウトファイルをオーバーライドすることで実現できます。これらのレイアウトをカスタマイズするために、アプリケーションは独自のres/layout *ディレクトリに同じ名前のレイアウトファイルを定義できます。これらのレイアウトファイルは、ExoPlayerライブラリによって提供されるものよりも優先されます。これを実現するには、exo_playback_control_view.xmlというファイルをアプリケーションのres/layoutディレクトリに作成します。

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

関連する問題