2017-03-14 2 views
1

Ich bin neu in Android Studio und ExoPlayer Ich habe den Player gestartet, um Videos abzuspielen, aber ich weiß nicht, ob der Player puffert und einen Fortschrittsbalken anzeigt, um den Benutzer zu benachrichtigen, bitte Hilfe?Exoplayer und ProgressBar

Antwort

3

Sie sollten ExoPlayer.EventListener implementieren und außer Kraft setzen onPlayerStateChanged() Zustand der Wiedergabe von Video-Fortschritte zu erkennen (STATE_IDLE, STATE_BUFFERING, STATE_READY, STATE_ENDED)

4

in Layout-Datei:

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

in Spieleraktivität:

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' ist veraltet, stattdessen' Player.STATE_BUFFERING' verwenden –