2017-02-16 43 views
4

如何隱藏ExoPlayer2中沒有的所有控制器(開始按鈕,暫停等),並且屏幕始終爲滿。如何隱藏ExoPlayer2中的控制按鈕

我看了,有simpleExoPlayerView.setUseController(true)方法;

但它關閉播放器...

public void setUseController (boolean useController) { 
    this.useController = useController; 
if (useController) { 
     controller.setPlayer(player); 
    } else { 
     controller.hide(); 
     controller.setPlayer(null); 
    } 
} 

如何隱藏或刪除這些組件?

回答

1
controller.setVisibility(View.GONE); 
controller.setVisibility(View.INVISIBLE); 

使用其中任一設置可見度。 Android文檔:Link

+0

控制器視圖在庫類中。我不能編輯它... –

15

ExoPlayer-r2.2.0使用

videoView.hideController(); 
videoView.setControllerVisibilityListener(new PlaybackControlView.VisibilityListener() { 
    @Override 
    public void onVisibilityChange(int i) { 
     if(i == 0) { 
      videoView.hideController(); 
     } 
    } 
}); 

應用:use_controller在佈局= 「假」

<... 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    ...> 

    <com.google.android.exoplayer2.ui.SimpleExoPlayerView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:use_controller="false"/> 
2

爲了解決這個問題,我這樣做:

代碼在Kotlin

simpleExoPlayerView.setControllerVisibilityListener { visibility -> 
     val layout = activity.findViewById<LinearLayout>(R.id.ll_customPlayBackControlView) 
     if (layout.tag != "IN_ANIMATION") { 
      when (visibility) { 
       View.GONE -> { 
        layout.tag = "IN_ANIMATION" 
        ex_fragmentVideoView.showController() 
        layout.animate().alpha(0F).setDuration(450L).withEndAction({ ex_fragmentVideoView.hideController(); layout.tag = "" }).start() 
       } 
       View.VISIBLE -> { 
        layout.animate().alpha(1F).setDuration(450L).start() 
       } 
      } 
     } 
    }