Advertisement
dimon95me

Untitled

Feb 26th, 2020
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.66 KB | None | 0 0
  1. package com.inrating.android.screen.home;
  2.  
  3. import android.content.Context;
  4. import android.net.Uri;
  5. import androidx.annotation.NonNull;
  6. import androidx.annotation.Nullable;
  7.  
  8. import com.google.android.exoplayer2.ParserException;
  9. import com.google.android.exoplayer2.Player;
  10. import com.google.android.exoplayer2.ui.SimpleExoPlayerView;
  11.  
  12. import java.util.concurrent.atomic.AtomicInteger;
  13.  
  14. import im.ene.toro.ToroPlayer;
  15. import im.ene.toro.exoplayer.ExoPlayerHelper;
  16. import im.ene.toro.helper.ToroPlayerHelper;
  17. import im.ene.toro.media.PlaybackInfo;
  18. import im.ene.toro.widget.Container;
  19.  
  20. public final class LoopingExoPlayerViewHelper extends ToroPlayerHelper {
  21.  
  22.     public static int volume;
  23.  
  24.     private final ExoPlayerHelper.EventListener internalListener =
  25.             new ExoPlayerHelper.EventListener() {
  26.                 @Override
  27.                 public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
  28.                     LoopingExoPlayerViewHelper.super.onPlayerStateUpdated(playWhenReady, playbackState);
  29.                     super.onPlayerStateChanged(playWhenReady, playbackState);
  30.                 }
  31.             };
  32.  
  33.     private final AtomicInteger counter = new AtomicInteger(0); // initialize count
  34.     private final ExoPlayerHelper helper;
  35.     private final LoopingMediaSourceBuilder mediaSourceBuilder;
  36.  
  37.     public LoopingExoPlayerViewHelper(Container container, ToroPlayer player, Uri mediaUri) {
  38.         super(container, player);
  39.         if (!(player.getPlayerView() instanceof SimpleExoPlayerView)) {
  40.             throw new IllegalArgumentException("Only SimpleExoPlayerView is supported.");
  41.         }
  42.         helper = new ExoPlayerHelper((SimpleExoPlayerView) player.getPlayerView());
  43.         Context context = container.getContext().getApplicationContext();
  44.         mediaSourceBuilder = new LoopingMediaSourceBuilder(context, mediaUri);
  45.     }
  46.  
  47.     public final void setEventListener(Player.EventListener eventListener) {
  48.         this.internalListener.setDelegate(eventListener);
  49.     }
  50.  
  51.     /**
  52.      * {@inheritDoc}
  53.      *
  54.      * @param playbackInfo the initial playback info. {@code null} if no such info available.
  55.      */
  56.     @Override
  57.     public void initialize(@Nullable PlaybackInfo playbackInfo) {
  58.         if (counter.getAndIncrement() == 0) { // prevent the multiple time init
  59.             this.helper.addEventListener(internalListener);
  60.             try {
  61.                 this.helper.prepare(mediaSourceBuilder);
  62.                 //Set volume by default
  63.                 this.helper.setVolume(volume);
  64.             } catch (ParserException e) {
  65.                 e.printStackTrace();
  66.             }
  67.         }
  68.  
  69.         this.helper.setPlaybackInfo(playbackInfo);
  70.     }
  71.  
  72.     @Override
  73.     public void play() {
  74.         this.helper.play();
  75.     }
  76.  
  77.     @Override
  78.     public void pause() {
  79.         this.helper.pause();
  80.     }
  81.  
  82.     @Override
  83.     public boolean isPlaying() {
  84.         return this.helper.isPlaying();
  85.     }
  86.  
  87.     @NonNull
  88.     @Override
  89.     public PlaybackInfo getLatestPlaybackInfo() {
  90.         return this.helper.getPlaybackInfo();
  91.     }
  92.  
  93.     @Override
  94.     public void release() {
  95.         counter.set(0); // reset
  96.         this.helper.removeEventListener(internalListener);
  97.         this.helper.release();
  98.         super.release();
  99.     }
  100.  
  101.     public float getVolume(){
  102.        return this.helper.getVolume();
  103.     }
  104.  
  105.     public int volumeSelector() {
  106.         if(this.helper.getVolume() == 1){
  107.             this.helper.setVolume(0);
  108.             volume = 0;
  109.         } else {
  110.             this.helper.setVolume(1);
  111.             volume = 1;
  112.         }
  113.         return this.helper.getVolume() == 1 ? 1 : 0;
  114.     }
  115.  
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement