2017-03-14 9 views
1

私はAndroidスタジオとExoPlayerの初心者です 私は動画を再生するプレイヤーを開始しましたが、プレーヤーがバッファリングしているかどうかを知ることができず、ユーザーに通知するプログレスバーが表示されます。ExoplayerとProgressBar

答えて

3

あなたはExoPlayer.EventListenerを実装し、レイアウトファイルにビデオの進行状況(STATE_IDLE、STATE_BUFFERING、STATE_READY、STATE_ENDED)を

4

演奏の状態を検出するonPlayerStateChanged()をオーバーライドする必要があります。プレイヤーの活動に

<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'を使用します。 –