Make SingleSampleMediaSource.Factory reusable

PiperOrigin-RevId: 292879934
This commit is contained in:
olly 2020-02-03 10:38:44 +00:00 committed by Oliver Woodman
parent b6bd57ab12
commit c095a9ff98

View File

@ -59,7 +59,6 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
private LoadErrorHandlingPolicy loadErrorHandlingPolicy;
private boolean treatLoadErrorsAsEndOfStream;
private boolean isCreateCalled;
@Nullable private Object tag;
/**
@ -81,8 +80,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
* @return This factory, for convenience.
* @throws IllegalStateException If one of the {@code create} methods has already been called.
*/
public Factory setTag(Object tag) {
Assertions.checkState(!isCreateCalled);
public Factory setTag(@Nullable Object tag) {
this.tag = tag;
return this;
}
@ -115,9 +113,12 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
* @return This factory, for convenience.
* @throws IllegalStateException If one of the {@code create} methods has already been called.
*/
public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
Assertions.checkState(!isCreateCalled);
this.loadErrorHandlingPolicy = loadErrorHandlingPolicy;
public Factory setLoadErrorHandlingPolicy(
@Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
this.loadErrorHandlingPolicy =
loadErrorHandlingPolicy != null
? loadErrorHandlingPolicy
: new DefaultLoadErrorHandlingPolicy();
return this;
}
@ -132,7 +133,6 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
* @throws IllegalStateException If one of the {@code create} methods has already been called.
*/
public Factory setTreatLoadErrorsAsEndOfStream(boolean treatLoadErrorsAsEndOfStream) {
Assertions.checkState(!isCreateCalled);
this.treatLoadErrorsAsEndOfStream = treatLoadErrorsAsEndOfStream;
return this;
}
@ -146,7 +146,6 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
* @return The new {@link SingleSampleMediaSource}.
*/
public SingleSampleMediaSource createMediaSource(Uri uri, Format format, long durationUs) {
isCreateCalled = true;
return new SingleSampleMediaSource(
uri,
dataSourceFactory,