Class TrackGroup

  • All Implemented Interfaces:
    Bundleable

    public final class TrackGroup
    extends Object
    implements Bundleable
    Defines an immutable group of tracks identified by their format identity.
    • Field Detail

      • length

        public final int length
        The number of tracks in the group.
      • id

        public final String id
        An identifier for the track group.
    • Constructor Detail

      • TrackGroup

        public TrackGroup​(Format... formats)
        Constructs a track group containing the provided formats.
        Parameters:
        formats - The list of Formats. Must not be empty.
      • TrackGroup

        public TrackGroup​(String id,
                          Format... formats)
        Constructs a track group with the provided id and formats.
        Parameters:
        id - The identifier of the track group. May be an empty string.
        formats - The list of Formats. Must not be empty.
    • Method Detail

      • copyWithId

        @CheckResult
        public TrackGroup copyWithId​(String id)
        Returns a copy of this track group with the specified id.
        Parameters:
        id - The identifier for the copy of the track group.
        Returns:
        The copied track group.
      • getFormat

        public Format getFormat​(int index)
        Returns the format of the track at a given index.
        Parameters:
        index - The index of the track.
        Returns:
        The track's format.
      • indexOf

        public int indexOf​(Format format)
        Returns the index of the track with the given format in the group. The format is located by identity so, for example, group.indexOf(group.getFormat(index)) == index even if multiple tracks have formats that contain the same values.
        Parameters:
        format - The format.
        Returns:
        The index of the track, or C.INDEX_UNSET if no such track exists.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • equals

        public boolean equals​(@Nullable
                              Object obj)
        Overrides:
        equals in class Object
      • toBundle

        public Bundle toBundle()
        Description copied from interface: Bundleable
        Returns a Bundle representing the information stored in this object.
        Specified by:
        toBundle in interface Bundleable