code: @Implementation
    protected void prepare() {
      checkStateException("prepare()", preparableStates);
      MediaInfo info = getMediaInfo();
      if (info.preparationDelay > 0) {
        SystemClock.sleep(info.preparationDelay);
      }
      invokePreparedListener();
    }
docs: Simulates {@link MediaPlayer#prepareAsync()}. Sleeps for {@link MediaInfo#getPreparationDelay()
  preparationDelay} ms by calling {@link SystemClock#sleep(long)} before calling {@link
  #invokePreparedListener()}.
  
  <p>If {@code preparationDelay} is not positive and non-zero, there is no sleep.
  
  @see MediaInfo#setPreparationDelay(int)
  @see #invokePreparedListener()