Add MediaItem.SubtitleConfiguration#id field
Issue: google/ExoPlayer#9673 #minor-release PiperOrigin-RevId: 414413320
This commit is contained in:
parent
1b0742f54a
commit
59d98b9a4e
@ -1268,6 +1268,7 @@ public final class MediaItem implements Bundleable {
|
||||
private @C.SelectionFlags int selectionFlags;
|
||||
private @C.RoleFlags int roleFlags;
|
||||
@Nullable private String label;
|
||||
@Nullable private String id;
|
||||
|
||||
/**
|
||||
* Constructs an instance.
|
||||
@ -1285,6 +1286,7 @@ public final class MediaItem implements Bundleable {
|
||||
this.selectionFlags = subtitleConfiguration.selectionFlags;
|
||||
this.roleFlags = subtitleConfiguration.roleFlags;
|
||||
this.label = subtitleConfiguration.label;
|
||||
this.id = subtitleConfiguration.id;
|
||||
}
|
||||
|
||||
/** Sets the {@link Uri} to the subtitle file. */
|
||||
@ -1323,6 +1325,12 @@ public final class MediaItem implements Bundleable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/** Sets the optional ID for this subtitle track. */
|
||||
public Builder setId(@Nullable String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
/** Creates a {@link SubtitleConfiguration} from the values of this builder. */
|
||||
public SubtitleConfiguration build() {
|
||||
return new SubtitleConfiguration(this);
|
||||
@ -1345,20 +1353,27 @@ public final class MediaItem implements Bundleable {
|
||||
public final @C.RoleFlags int roleFlags;
|
||||
/** The label. */
|
||||
@Nullable public final String label;
|
||||
/**
|
||||
* The ID of the subtitles. This will be propagated to the {@link Format#id} of the subtitle
|
||||
* track created from this configuration.
|
||||
*/
|
||||
@Nullable public final String id;
|
||||
|
||||
private SubtitleConfiguration(
|
||||
Uri uri,
|
||||
String mimeType,
|
||||
@Nullable String language,
|
||||
@C.SelectionFlags int selectionFlags,
|
||||
@C.RoleFlags int roleFlags,
|
||||
@Nullable String label) {
|
||||
int selectionFlags,
|
||||
int roleFlags,
|
||||
@Nullable String label,
|
||||
@Nullable String id) {
|
||||
this.uri = uri;
|
||||
this.mimeType = mimeType;
|
||||
this.language = language;
|
||||
this.selectionFlags = selectionFlags;
|
||||
this.roleFlags = roleFlags;
|
||||
this.label = label;
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
private SubtitleConfiguration(Builder builder) {
|
||||
@ -1368,6 +1383,7 @@ public final class MediaItem implements Bundleable {
|
||||
this.selectionFlags = builder.selectionFlags;
|
||||
this.roleFlags = builder.roleFlags;
|
||||
this.label = builder.label;
|
||||
this.id = builder.id;
|
||||
}
|
||||
|
||||
/** Returns a {@link Builder} initialized with the values of this instance. */
|
||||
@ -1391,7 +1407,8 @@ public final class MediaItem implements Bundleable {
|
||||
&& Util.areEqual(language, other.language)
|
||||
&& selectionFlags == other.selectionFlags
|
||||
&& roleFlags == other.roleFlags
|
||||
&& Util.areEqual(label, other.label);
|
||||
&& Util.areEqual(label, other.label)
|
||||
&& Util.areEqual(id, other.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1402,6 +1419,7 @@ public final class MediaItem implements Bundleable {
|
||||
result = 31 * result + selectionFlags;
|
||||
result = 31 * result + roleFlags;
|
||||
result = 31 * result + (label == null ? 0 : label.hashCode());
|
||||
result = 31 * result + (id == null ? 0 : id.hashCode());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -1436,7 +1454,7 @@ public final class MediaItem implements Bundleable {
|
||||
@C.SelectionFlags int selectionFlags,
|
||||
@C.RoleFlags int roleFlags,
|
||||
@Nullable String label) {
|
||||
super(uri, mimeType, language, selectionFlags, roleFlags, label);
|
||||
super(uri, mimeType, language, selectionFlags, roleFlags, label, /* id= */ null);
|
||||
}
|
||||
|
||||
private Subtitle(Builder builder) {
|
||||
|
@ -276,6 +276,7 @@ public class MediaItemTest {
|
||||
.setSelectionFlags(C.SELECTION_FLAG_FORCED)
|
||||
.setRoleFlags(C.ROLE_FLAG_ALTERNATE)
|
||||
.setLabel("label")
|
||||
.setId("id")
|
||||
.build());
|
||||
|
||||
MediaItem mediaItem =
|
||||
@ -617,6 +618,7 @@ public class MediaItemTest {
|
||||
.setSelectionFlags(C.SELECTION_FLAG_FORCED)
|
||||
.setRoleFlags(C.ROLE_FLAG_ALTERNATE)
|
||||
.setLabel("label")
|
||||
.setId("id")
|
||||
.build()))
|
||||
.setTag(new Object())
|
||||
.build();
|
||||
@ -673,6 +675,7 @@ public class MediaItemTest {
|
||||
.setSelectionFlags(C.SELECTION_FLAG_FORCED)
|
||||
.setRoleFlags(C.ROLE_FLAG_ALTERNATE)
|
||||
.setLabel("label")
|
||||
.setId("id")
|
||||
.build()))
|
||||
.setTag(new Object())
|
||||
.build();
|
||||
|
@ -406,6 +406,7 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
|
||||
.setSelectionFlags(subtitleConfigurations.get(i).selectionFlags)
|
||||
.setRoleFlags(subtitleConfigurations.get(i).roleFlags)
|
||||
.setLabel(subtitleConfigurations.get(i).label)
|
||||
.setId(subtitleConfigurations.get(i).id)
|
||||
.build();
|
||||
ExtractorsFactory extractorsFactory =
|
||||
() ->
|
||||
|
@ -172,6 +172,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
|
||||
.setSelectionFlags(subtitleConfiguration.selectionFlags)
|
||||
.setRoleFlags(subtitleConfiguration.roleFlags)
|
||||
.setLabel(subtitleConfiguration.label)
|
||||
.setId(subtitleConfiguration.id)
|
||||
.build();
|
||||
dataSpec =
|
||||
new DataSpec.Builder()
|
||||
|
Loading…
x
Reference in New Issue
Block a user