@Override public void setMarker(TrackMarker marker) { getActiveExecutor().setMarker(marker); }
@Override public long getDuration() { if (delegate != null) { return delegate.getDuration(); } else { synchronized (this) { if (delegate != null) { return delegate.getDuration(); } else { return super.getDuration(); } } } } }
@Override public boolean provide(MutableAudioFrame targetFrame) { return getActiveExecutor().provide(targetFrame); }
@Override public boolean provide(MutableAudioFrame targetFrame, long timeout, TimeUnit unit) throws TimeoutException, InterruptedException { return getActiveExecutor().provide(targetFrame, timeout, unit); }
@Override public void stop() { getActiveExecutor().stop(); }
@Override public AudioTrackState getState() { return getActiveExecutor().getState(); }
@Override public long getPosition() { return getActiveExecutor().getPosition(); }
@Override public AudioFrame provide() { return getActiveExecutor().provide(); }
@Override public AudioFrame provide(long timeout, TimeUnit unit) throws TimeoutException, InterruptedException { return getActiveExecutor().provide(timeout, unit); }
@Override public void setPosition(long position) { getActiveExecutor().setPosition(position); }