2017-03-14 15 views
1

Android Studio 및 ExoPlayer를 처음 사용했습니다. 플레이어를 시작하여 동영상을 재생했지만 플레이어가 버퍼링 중이며 진행률 표시 줄에 사용자에게 알리면 검색 할 수 없습니다. 도움이 필요합니까?Exoplayer 및 ProgressBar

답변

3

당신은 ExoPlayer.EventListener를 구현하고 레이아웃 파일에 비디오 진행 (STATE_IDLE, STATE_BUFFERING, STATE_READY, STATE_ENDED를)

4

재생의 상태를 감지하는 onPlayerStateChanged()를 오버라이드 (override) : 플레이어 활동에

<ProgressBar 
     android:id="@+id/progress_bar" 
     android:layout_width="48dp" 
     android:layout_height="48dp" 
     android:layout_gravity="center"/> 

:

player.addListener(new ExoPlayer.EventListener() { 
      @Override 
      public void onTimelineChanged(Timeline timeline, Object manifest) {} 

      @Override 
      public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {} 

      @Override 
      public void onLoadingChanged(boolean isLoading) {} 

      @Override 
      public void onPlayerStateChanged(boolean playWhenReady, int playbackState) { 
       if (playbackState == ExoPlayer.STATE_BUFFERING){ 
        progressBar.setVisibility(View.VISIBLE); 
       } else { 
        progressBar.setVisibility(View.INVISIBLE); 
       } 
      } 

      @Override 
      public void onPlayerError(ExoPlaybackException error) {} 

      @Override 
      public void onPositionDiscontinuity() {} 

      @Override 
      public void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {} 
     }); 
+0

대신 'ExoPlayer.STATE_BUFFERING'은 (는) 대신'Player.STATE_BUFFERING'을 사용합니다. –