Class TracksInfo.TrackGroupInfo

  • All Implemented Interfaces:
    Bundleable
    Enclosing class:
    TracksInfo

    public static final class TracksInfo.TrackGroupInfo
    extends Object
    implements Bundleable
    Information about a single group of tracks, including the underlying TrackGroup, the type of tracks it contains, and the level to which each track is supported by the player.
    • Constructor Summary

      Constructors 
      Constructor Description
      TrackGroupInfo​(TrackGroup trackGroup, @com.google.android.exoplayer2.C.FormatSupport int[] trackSupport, @com.google.android.exoplayer2.C.TrackType int trackType, boolean[] tracksSelected)
      Constructs a TrackGroupInfo.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(Object other)  
      TrackGroup getTrackGroup()
      Returns the TrackGroup described by this TrackGroupInfo.
      @com.google.android.exoplayer2.C.FormatSupport int getTrackSupport​(int trackIndex)
      Returns the level of support for a specified track.
      @com.google.android.exoplayer2.C.TrackType int getTrackType()
      Returns the C.TrackType of the group.
      int hashCode()  
      boolean isSelected()
      Returns whether at least one track in the group is selected for playback.
      boolean isSupported()
      Returns whether at least one track in the group is supported for playback, without exceeding the advertised capabilities of the device.
      boolean isSupported​(boolean allowExceedsCapabilities)
      Returns whether at least one track in the group is supported for playback.
      boolean isTrackSelected​(int trackIndex)
      Returns whether a specified track is selected for playback.
      boolean isTrackSupported​(int trackIndex)
      Returns whether a specified track is supported for playback, without exceeding the advertised capabilities of the device.
      boolean isTrackSupported​(int trackIndex, boolean allowExceedsCapabilities)
      Returns whether a specified track is supported for playback.
      Bundle toBundle()
      Returns a Bundle representing the information stored in this object.
    • Constructor Detail

      • TrackGroupInfo

        public TrackGroupInfo​(TrackGroup trackGroup,
                              @FormatSupport
                              @com.google.android.exoplayer2.C.FormatSupport int[] trackSupport,
                              @com.google.android.exoplayer2.C.TrackType int trackType,
                              boolean[] tracksSelected)
        Constructs a TrackGroupInfo.
        Parameters:
        trackGroup - The TrackGroup described.
        trackSupport - The C.FormatSupport of each track in the trackGroup.
        trackType - The C.TrackType of the tracks in the trackGroup.
        tracksSelected - Whether a track is selected for each track in trackGroup.
    • Method Detail

      • getTrackGroup

        public TrackGroup getTrackGroup()
        Returns the TrackGroup described by this TrackGroupInfo.
      • getTrackSupport

        @FormatSupport
        public @com.google.android.exoplayer2.C.FormatSupport int getTrackSupport​(int trackIndex)
        Returns the level of support for a specified track.
        Parameters:
        trackIndex - The index of the track in the TrackGroup.
        Returns:
        The C.FormatSupport of the track.
      • isTrackSupported

        public boolean isTrackSupported​(int trackIndex)
        Returns whether a specified track is supported for playback, without exceeding the advertised capabilities of the device. Equivalent to isTrackSupported(trackIndex, false).
        Parameters:
        trackIndex - The index of the track in the TrackGroup.
        Returns:
        True if the track's format can be played, false otherwise.
      • isTrackSupported

        public boolean isTrackSupported​(int trackIndex,
                                        boolean allowExceedsCapabilities)
        Returns whether a specified track is supported for playback.
        Parameters:
        trackIndex - The index of the track in the TrackGroup.
        allowExceedsCapabilities - Whether to consider the track as supported if it has a supported MIME type, but otherwise exceeds the advertised capabilities of the device. For example, a video track for which there's a corresponding decoder whose maximum advertised resolution is exceeded by the resolution of the track. Such tracks may be playable in some cases.
        Returns:
        True if the track's format can be played, false otherwise.
      • isSelected

        public boolean isSelected()
        Returns whether at least one track in the group is selected for playback.
      • isSupported

        public boolean isSupported()
        Returns whether at least one track in the group is supported for playback, without exceeding the advertised capabilities of the device. Equivalent to isSupported(false).
      • isSupported

        public boolean isSupported​(boolean allowExceedsCapabilities)
        Returns whether at least one track in the group is supported for playback.
        Parameters:
        allowExceedsCapabilities - Whether to consider a track as supported if it has a supported MIME type, but otherwise exceeds the advertised capabilities of the device. For example, a video track for which there's a corresponding decoder whose maximum advertised resolution is exceeded by the resolution of the track. Such tracks may be playable in some cases.
      • isTrackSelected

        public boolean isTrackSelected​(int trackIndex)
        Returns whether a specified track is selected for playback.

        Note that multiple tracks in the group may be selected. This is common in adaptive streaming, where tracks of different qualities are selected and the player switches between them during playback (e.g., based on the available network bandwidth).

        This class doesn't provide a way to determine which of the selected tracks is currently playing, however some player implementations have ways of getting such information. For example, ExoPlayer provides this information via ExoTrackSelection.getSelectedFormat.

        Parameters:
        trackIndex - The index of the track in the TrackGroup.
        Returns:
        True if the track is selected, false otherwise.
      • getTrackType

        public @com.google.android.exoplayer2.C.TrackType int getTrackType()
        Returns the C.TrackType of the group.
      • equals

        public boolean equals​(@Nullable
                              Object other)
        Overrides:
        equals in class Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode 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