예제 #1
0
  private void setup(Context context, @Nullable AttributeSet attrs) {
    useExo =
        Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN
            && EMDeviceUtil.isDeviceCTSCompliant();
    pollRepeater.setRepeatListener(
        new Repeater.RepeatListener() {
          @Override
          public void onRepeat() {
            currentMediaProgressEvent.update(
                getCurrentPosition(), getBufferPercentage(), getDuration());

            if (defaultControls != null) {
              defaultControls.setProgressEvent(currentMediaProgressEvent);
            }

            if (progressCallback != null
                && progressCallback.onProgressUpdated(currentMediaProgressEvent)) {
              return;
            }

            if (bus != null) {
              bus.post(currentMediaProgressEvent);
            }
          }
        });

    initView(context);
    readAttributes(context, attrs);
  }
예제 #2
0
 /** Stops the progress poll (see {@link #startProgressPoll()}) */
 public void stopProgressPoll() {
   if (defaultControls == null) {
     pollRepeater.stop();
   }
 }
예제 #3
0
 /**
  * Starts the progress poll. This should be called after you have set the bus with {@link
  * #setBus(EMEventBus)} or previously called {@link #startProgressPoll(EMEventBus)}, otherwise you
  * won't get notified of progress changes
  */
 public void startProgressPoll() {
   if (bus != null || defaultControls != null || progressCallback != null) {
     pollRepeater.start();
   }
 }
예제 #4
0
 /**
  * Sets the delay to use when notifying of progress. The default is 33 milliseconds, or 30
  * frames-per-second
  *
  * @param milliSeconds The millisecond delay to use
  */
 public void setProgressPollDelay(int milliSeconds) {
   pollRepeater.setRepeaterDelay(milliSeconds);
 }
예제 #5
0
 /**
  * Performs the functionality to stop the progress polling, and stop any other procedures from
  * running that we no longer need.
  */
 private void onPlaybackEnded() {
   stopPlayback();
   pollRepeater.stop();
 }
예제 #6
0
 /**
  * Performs the functionality to stop the progress polling, and stop any other procedures from
  * running that we no longer need.
  */
 protected void onPlaybackEnded() {
   stopPlayback();
   pollRepeater.stop();
 }