mirror of https://github.com/TeamNewPipe/NewPipe
57 lines
1.7 KiB
Java
57 lines
1.7 KiB
Java
package org.schabi.newpipe.player.playback;
|
|
|
|
import android.support.annotation.NonNull;
|
|
import android.support.annotation.Nullable;
|
|
|
|
import com.google.android.exoplayer2.source.MediaSource;
|
|
|
|
import org.schabi.newpipe.extractor.stream.StreamInfo;
|
|
import org.schabi.newpipe.playlist.PlayQueueItem;
|
|
|
|
import java.util.List;
|
|
|
|
public interface PlaybackListener {
|
|
/**
|
|
* Called when the stream at the current queue index is not ready yet.
|
|
* Signals to the listener to block the player from playing anything and notify the source
|
|
* is now invalid.
|
|
*
|
|
* May be called at any time.
|
|
* */
|
|
void block();
|
|
|
|
/**
|
|
* Called when the stream at the current queue index is ready.
|
|
* Signals to the listener to resume the player by preparing a new source.
|
|
*
|
|
* May be called only when the player is blocked.
|
|
* */
|
|
void unblock(final MediaSource mediaSource);
|
|
|
|
/**
|
|
* Called when the queue index is refreshed.
|
|
* Signals to the listener to synchronize the player's window to the manager's
|
|
* window.
|
|
*
|
|
* May be called only after unblock is called.
|
|
* */
|
|
void sync(@NonNull final PlayQueueItem item, @Nullable final StreamInfo info);
|
|
|
|
/**
|
|
* Requests the listener to resolve a stream info into a media source
|
|
* according to the listener's implementation (background, popup or main video player).
|
|
*
|
|
* May be called at any time.
|
|
* */
|
|
MediaSource sourceOf(final StreamInfo info);
|
|
|
|
/**
|
|
* Called when the play queue can no longer to played or used.
|
|
* Currently, this means the play queue is empty and complete.
|
|
* Signals to the listener that it should shutdown.
|
|
*
|
|
* May be called at any time.
|
|
* */
|
|
void shutdown();
|
|
}
|