mirror of https://github.com/TeamNewPipe/NewPipe
31 lines
1.2 KiB
Java
31 lines
1.2 KiB
Java
package org.schabi.newpipe.player.mediasource;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import com.google.android.exoplayer2.source.MediaSource;
|
|
|
|
import org.schabi.newpipe.player.playqueue.PlayQueueItem;
|
|
|
|
public interface ManagedMediaSource extends MediaSource {
|
|
/**
|
|
* Determines whether or not this {@link ManagedMediaSource} can be replaced.
|
|
*
|
|
* @param newIdentity a stream the {@link ManagedMediaSource} should encapsulate over, if
|
|
* it is different from the existing stream in the
|
|
* {@link ManagedMediaSource}, then it should be replaced.
|
|
* @param isInterruptable specifies if this {@link ManagedMediaSource} potentially
|
|
* being played.
|
|
* @return whether this could be replaces
|
|
*/
|
|
boolean shouldBeReplacedWith(@NonNull PlayQueueItem newIdentity, boolean isInterruptable);
|
|
|
|
/**
|
|
* Determines if the {@link PlayQueueItem} is the one the
|
|
* {@link ManagedMediaSource} encapsulates over.
|
|
*
|
|
* @param stream play queue item to check
|
|
* @return whether this source is for the specified stream
|
|
*/
|
|
boolean isStreamEqual(@NonNull PlayQueueItem stream);
|
|
}
|