0% found this document useful (0 votes)
6 views54 pages

AdOverlayInfo and AudioAttributes API

The document defines several classes and interfaces related to media attributes in the androidx.media3.common package. It includes the AdOverlayInfo class for managing ad overlays, AudioAttributes for handling audio properties, and various constants and annotations for audio content types, usage, and capture policies. Additionally, it provides builder patterns for creating instances of these classes with specific configurations.

Uploaded by

Bruno Costa
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views54 pages

AdOverlayInfo and AudioAttributes API

The document defines several classes and interfaces related to media attributes in the androidx.media3.common package. It includes the AdOverlayInfo class for managing ad overlays, AudioAttributes for handling audio properties, and various constants and annotations for audio content types, usage, and capture policies. Additionally, it provides builder patterns for creating instances of these classes with specific configurations.

Uploaded by

Bruno Costa
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

// Signature format: 2.

0
package [Link] {

public final class AdOverlayInfo {


field public static final int PURPOSE_CLOSE_AD = 2; // 0x2
field public static final int PURPOSE_CONTROLS = 1; // 0x1
field public static final int PURPOSE_NOT_VISIBLE = 4; // 0x4
field public static final int PURPOSE_OTHER = 3; // 0x3
field @[Link] public final int purpose;
field @Nullable public final String reasonDetail;
field public final [Link] view;
}

public static final class [Link] {


ctor public [Link]([Link],
@[Link] int);
method public [Link] build();
method public [Link]
setDetailedReason(@Nullable String);
}

@IntDef({[Link].PURPOSE_CONTROLS,
[Link].PURPOSE_CLOSE_AD,
[Link].PURPOSE_OTHER,
[Link].PURPOSE_NOT_VISIBLE})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

public interface AdViewProvider {


method public default [Link]<[Link]>
getAdOverlayInfos();
method @Nullable public [Link] getAdViewGroup();
}

public final class AudioAttributes {


method public [Link].AudioAttributesV21
getAudioAttributesV21();
field public static final [Link] DEFAULT;
field @[Link] public final int
allowedCapturePolicy;
field @[Link] public final int contentType;
field @[Link] public final int flags;
field @[Link] public final int
spatializationBehavior;
field @[Link] public final int usage;
}

public static final class AudioAttributes.AudioAttributesV21 {


field public final [Link] audioAttributes;
}

public static final class [Link] {


ctor public [Link]();
method public [Link] build();
method public [Link]
setAllowedCapturePolicy(@[Link] int);
method public [Link]
setContentType(@[Link] int);
method public [Link]
setFlags(@[Link] int);
method public [Link]
setSpatializationBehavior(@[Link] int);
method public [Link]
setUsage(@[Link] int);
}

public final class C {


field public static final int ALLOW_CAPTURE_BY_ALL = 1; // 0x1
field public static final int ALLOW_CAPTURE_BY_NONE = 3; // 0x3
field public static final int ALLOW_CAPTURE_BY_SYSTEM = 2; // 0x2
field public static final int AUDIO_CONTENT_TYPE_MOVIE = 3; // 0x3
field public static final int AUDIO_CONTENT_TYPE_MUSIC = 2; // 0x2
field public static final int AUDIO_CONTENT_TYPE_SONIFICATION = 4; // 0x4
field public static final int AUDIO_CONTENT_TYPE_SPEECH = 1; // 0x1
field public static final int AUDIO_CONTENT_TYPE_UNKNOWN = 0; // 0x0
field public static final [Link] CLEARKEY_UUID;
field public static final [Link] COMMON_PSSH_UUID;
field public static final int CONTENT_TYPE_DASH = 0; // 0x0
field public static final int CONTENT_TYPE_HLS = 2; // 0x2
field public static final int CONTENT_TYPE_OTHER = 4; // 0x4
field public static final int CONTENT_TYPE_RTSP = 3; // 0x3
field public static final int CONTENT_TYPE_SS = 1; // 0x1
field public static final int CRYPTO_TYPE_CUSTOM_BASE = 10000; // 0x2710
field public static final int CRYPTO_TYPE_FRAMEWORK = 2; // 0x2
field public static final int CRYPTO_TYPE_NONE = 0; // 0x0
field public static final int CRYPTO_TYPE_UNSUPPORTED = 1; // 0x1
field public static final long DEFAULT_MAX_SEEK_TO_PREVIOUS_POSITION_MS =
3000L; // 0xbb8L
field public static final long DEFAULT_SEEK_BACK_INCREMENT_MS = 5000L; //
0x1388L
field public static final long DEFAULT_SEEK_FORWARD_INCREMENT_MS = 15000L; //
0x3a98L
field public static final int FLAG_AUDIBILITY_ENFORCED = 1; // 0x1
field public static final int INDEX_UNSET = -1; // 0xffffffff
field public static final String LANGUAGE_UNDETERMINED = "und";
field public static final int LENGTH_UNSET = -1; // 0xffffffff
field public static final [Link] PLAYREADY_UUID;
field public static final float RATE_UNSET = -3.4028235E38f;
field public static final int ROLE_FLAG_ALTERNATE = 2; // 0x2
field public static final int ROLE_FLAG_AUXILIARY = 32768; // 0x8000
field public static final int ROLE_FLAG_CAPTION = 64; // 0x40
field public static final int ROLE_FLAG_COMMENTARY = 8; // 0x8
field public static final int ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND = 1024; //
0x400
field public static final int ROLE_FLAG_DESCRIBES_VIDEO = 512; // 0x200
field public static final int ROLE_FLAG_DUB = 16; // 0x10
field public static final int ROLE_FLAG_EASY_TO_READ = 8192; // 0x2000
field public static final int ROLE_FLAG_EMERGENCY = 32; // 0x20
field public static final int ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY = 2048;
// 0x800
field public static final int ROLE_FLAG_MAIN = 1; // 0x1
field public static final int ROLE_FLAG_SIGN = 256; // 0x100
field public static final int ROLE_FLAG_SUBTITLE = 128; // 0x80
field public static final int ROLE_FLAG_SUPPLEMENTARY = 4; // 0x4
field public static final int ROLE_FLAG_TRANSCRIBES_DIALOG = 4096; // 0x1000
field public static final int ROLE_FLAG_TRICK_PLAY = 16384; // 0x4000
field public static final int SELECTION_FLAG_AUTOSELECT = 4; // 0x4
field public static final int SELECTION_FLAG_DEFAULT = 1; // 0x1
field public static final int SELECTION_FLAG_FORCED = 2; // 0x2
field public static final int SPATIALIZATION_BEHAVIOR_AUTO = 0; // 0x0
field public static final int SPATIALIZATION_BEHAVIOR_NEVER = 1; // 0x1
field public static final long TIME_END_OF_SOURCE = -9223372036854775808L; //
0x8000000000000000L
field public static final long TIME_UNSET = -9223372036854775807L; //
0x8000000000000001L
field public static final int TRACK_TYPE_AUDIO = 1; // 0x1
field public static final int TRACK_TYPE_CAMERA_MOTION = 6; // 0x6
field public static final int TRACK_TYPE_CUSTOM_BASE = 10000; // 0x2710
field public static final int TRACK_TYPE_DEFAULT = 0; // 0x0
field public static final int TRACK_TYPE_IMAGE = 4; // 0x4
field public static final int TRACK_TYPE_METADATA = 5; // 0x5
field public static final int TRACK_TYPE_NONE = -2; // 0xfffffffe
field public static final int TRACK_TYPE_TEXT = 3; // 0x3
field public static final int TRACK_TYPE_UNKNOWN = -1; // 0xffffffff
field public static final int TRACK_TYPE_VIDEO = 2; // 0x2
field public static final int USAGE_ALARM = 4; // 0x4
field public static final int USAGE_ASSISTANCE_ACCESSIBILITY = 11; // 0xb
field public static final int USAGE_ASSISTANCE_NAVIGATION_GUIDANCE = 12; // 0xc
field public static final int USAGE_ASSISTANCE_SONIFICATION = 13; // 0xd
field public static final int USAGE_ASSISTANT = 16; // 0x10
field public static final int USAGE_GAME = 14; // 0xe
field public static final int USAGE_MEDIA = 1; // 0x1
field public static final int USAGE_NOTIFICATION = 5; // 0x5
field public static final int USAGE_NOTIFICATION_COMMUNICATION_DELAYED = 9; //
0x9
field public static final int USAGE_NOTIFICATION_COMMUNICATION_INSTANT = 8; //
0x8
field public static final int USAGE_NOTIFICATION_COMMUNICATION_REQUEST = 7; //
0x7
field public static final int USAGE_NOTIFICATION_EVENT = 10; // 0xa
field public static final int USAGE_NOTIFICATION_RINGTONE = 6; // 0x6
field public static final int USAGE_UNKNOWN = 0; // 0x0
field public static final int USAGE_VOICE_COMMUNICATION = 2; // 0x2
field public static final int USAGE_VOICE_COMMUNICATION_SIGNALLING = 3; // 0x3
field public static final [Link] UUID_NIL;
field public static final int VOLUME_FLAG_ALLOW_RINGER_MODES = 2; // 0x2
field public static final int VOLUME_FLAG_PLAY_SOUND = 4; // 0x4
field public static final int VOLUME_FLAG_REMOVE_SOUND_AND_VIBRATE = 8; // 0x8
field public static final int VOLUME_FLAG_SHOW_UI = 1; // 0x1
field public static final int VOLUME_FLAG_VIBRATE = 16; // 0x10
field public static final int WAKE_MODE_LOCAL = 1; // 0x1
field public static final int WAKE_MODE_NETWORK = 2; // 0x2
field public static final int WAKE_MODE_NONE = 0; // 0x0
field public static final [Link] WIDEVINE_UUID;
}

@IntDef({[Link].C.ALLOW_CAPTURE_BY_ALL,
[Link].C.ALLOW_CAPTURE_BY_NONE,
[Link].C.ALLOW_CAPTURE_BY_SYSTEM}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

@IntDef({[Link].C.AUDIO_CONTENT_TYPE_MOVIE,
[Link].C.AUDIO_CONTENT_TYPE_MUSIC,
[Link].C.AUDIO_CONTENT_TYPE_SONIFICATION,
[Link].C.AUDIO_CONTENT_TYPE_SPEECH,
[Link].C.AUDIO_CONTENT_TYPE_UNKNOWN})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

@IntDef(flag=true, value={[Link].C.FLAG_AUDIBILITY_ENFORCED})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link] {
}

@IntDef({[Link].C.USAGE_ALARM,
[Link].C.USAGE_ASSISTANCE_ACCESSIBILITY,
[Link].C.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE,
[Link].C.USAGE_ASSISTANCE_SONIFICATION,
[Link].C.USAGE_ASSISTANT, [Link].C.USAGE_GAME,
[Link].C.USAGE_MEDIA, [Link].C.USAGE_NOTIFICATION,
[Link].C.USAGE_NOTIFICATION_COMMUNICATION_DELAYED,
[Link].C.USAGE_NOTIFICATION_COMMUNICATION_INSTANT,
[Link].C.USAGE_NOTIFICATION_COMMUNICATION_REQUEST,
[Link].C.USAGE_NOTIFICATION_EVENT,
[Link].C.USAGE_NOTIFICATION_RINGTONE,
[Link].C.USAGE_UNKNOWN,
[Link].C.USAGE_VOICE_COMMUNICATION,
[Link].C.USAGE_VOICE_COMMUNICATION_SIGNALLING})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link] {
}

@IntDef({[Link].C.CONTENT_TYPE_DASH,
[Link].C.CONTENT_TYPE_SS,
[Link].C.CONTENT_TYPE_HLS,
[Link].C.CONTENT_TYPE_RTSP,
[Link].C.CONTENT_TYPE_OTHER}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link]
{
}

@IntDef(open=true, value={[Link].C.CRYPTO_TYPE_UNSUPPORTED,
[Link].C.CRYPTO_TYPE_NONE,
[Link].C.CRYPTO_TYPE_FRAMEWORK}) @[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

@IntDef(flag=true, value={[Link].C.ROLE_FLAG_MAIN,
[Link].C.ROLE_FLAG_ALTERNATE,
[Link].C.ROLE_FLAG_SUPPLEMENTARY,
[Link].C.ROLE_FLAG_COMMENTARY,
[Link].C.ROLE_FLAG_DUB,
[Link].C.ROLE_FLAG_EMERGENCY,
[Link].C.ROLE_FLAG_CAPTION,
[Link].C.ROLE_FLAG_SUBTITLE,
[Link].C.ROLE_FLAG_SIGN,
[Link].C.ROLE_FLAG_DESCRIBES_VIDEO,
[Link].C.ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND,
[Link].C.ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY,
[Link].C.ROLE_FLAG_TRANSCRIBES_DIALOG,
[Link].C.ROLE_FLAG_EASY_TO_READ,
[Link].C.ROLE_FLAG_TRICK_PLAY,
[Link].C.ROLE_FLAG_AUXILIARY}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link] {
}

@IntDef(flag=true, value={[Link].C.SELECTION_FLAG_DEFAULT,
[Link].C.SELECTION_FLAG_FORCED,
[Link].C.SELECTION_FLAG_AUTOSELECT})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

@IntDef({[Link].C.SPATIALIZATION_BEHAVIOR_AUTO,
[Link].C.SPATIALIZATION_BEHAVIOR_NEVER})
@[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

@IntDef(open=true, value={[Link].C.TRACK_TYPE_UNKNOWN,
[Link].C.TRACK_TYPE_DEFAULT,
[Link].C.TRACK_TYPE_AUDIO,
[Link].C.TRACK_TYPE_VIDEO,
[Link].C.TRACK_TYPE_TEXT,
[Link].C.TRACK_TYPE_IMAGE,
[Link].C.TRACK_TYPE_METADATA,
[Link].C.TRACK_TYPE_CAMERA_MOTION,
[Link].C.TRACK_TYPE_NONE}) @[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

@IntDef(flag=true, value={[Link].C.VOLUME_FLAG_SHOW_UI,
[Link].C.VOLUME_FLAG_ALLOW_RINGER_MODES,
[Link].C.VOLUME_FLAG_PLAY_SOUND,
[Link].C.VOLUME_FLAG_REMOVE_SOUND_AND_VIBRATE,
[Link].C.VOLUME_FLAG_VIBRATE}) @[Link]
@[Link]([Link])
@[Link]({[Link].TYPE_USE}) public
static @interface [Link] {
}

@IntDef({[Link].C.WAKE_MODE_NONE,
[Link].C.WAKE_MODE_LOCAL,
[Link].C.WAKE_MODE_NETWORK}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link] {
}

public final class DeviceInfo {


field public static final int PLAYBACK_TYPE_LOCAL = 0; // 0x0
field public static final int PLAYBACK_TYPE_REMOTE = 1; // 0x1
field public static final [Link] UNKNOWN;
field @IntRange(from=0) public final int maxVolume;
field @IntRange(from=0) public final int minVolume;
field @[Link] public final int
playbackType;
field @Nullable public final String routingControllerId;
}

public static final class [Link] {


ctor public [Link](@[Link]
int);
method public [Link] build();
method public [Link]
setMaxVolume(@IntRange(from=0) int);
method public [Link]
setMinVolume(@IntRange(from=0) int);
method public [Link]
setRoutingControllerId(@Nullable String);
}

@IntDef({[Link].PLAYBACK_TYPE_LOCAL,
[Link].PLAYBACK_TYPE_REMOTE})
@[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

public interface ErrorMessageProvider<T extends [Link]> {


method public [Link]<[Link],[Link]>
getErrorMessage(T);
}

public final class Format {


field public static final int NO_VALUE = -1; // 0xffffffff
field public final int channelCount;
field @Nullable public final String codecs;
field @Nullable public final String containerMimeType;
field public final float frameRate;
field public final int height;
field @Nullable public final String id;
field @Nullable public final String label;
field @Nullable public final String language;
field public final float pixelWidthHeightRatio;
field @[Link] public final int roleFlags;
field @Nullable public final String sampleMimeType;
field public final int sampleRate;
field @[Link] public final int selectionFlags;
field public final int width;
}

public final class HeartRating extends [Link] {


ctor public HeartRating();
ctor public HeartRating(boolean);
method public boolean isHeart();
method public boolean isRated();
}

public final class MediaItem {


method public [Link] buildUpon();
method public static [Link] fromUri([Link]);
method public static [Link] fromUri(String);
field public static final String DEFAULT_MEDIA_ID = "";
field public static final [Link] EMPTY;
field public final [Link]
clippingConfiguration;
field public final [Link]
liveConfiguration;
field @Nullable public final
[Link] localConfiguration;
field public final String mediaId;
field public final [Link] mediaMetadata;
field public final [Link]
requestMetadata;
}
public static final class [Link] {
method public [Link]
buildUpon();
field public final [Link] adTagUri;
field @Nullable public final Object adsId;
}

public static final class [Link] {


ctor public [Link]([Link]);
method public [Link] build();
method public [Link]
setAdTagUri([Link]);
method public [Link]
setAdsId(@Nullable Object);
}

public static final class [Link] {


ctor public [Link]();
method public [Link] build();
method public [Link]
setAdsConfiguration(@Nullable [Link]);
method public [Link]
setClippingConfiguration([Link]);
method public [Link]
setDrmConfiguration(@Nullable [Link]);
method public [Link]
setLiveConfiguration([Link]);
method public [Link] setMediaId(String);
method public [Link]
setMediaMetadata([Link]);
method public [Link] setMimeType(@Nullable
String);
method public [Link]
setRequestMetadata([Link]);
method public [Link]
setSubtitleConfigurations([Link]<[Link]
onfiguration>);
method public [Link] setTag(@Nullable
Object);
method public [Link] setUri(@Nullable
[Link]);
method public [Link] setUri(@Nullable
String);
}

public static class [Link] {


method public [Link]
buildUpon();
field public static final
[Link] UNSET;
field public final long endPositionMs;
field public final boolean relativeToDefaultPosition;
field public final boolean relativeToLiveWindow;
field @IntRange(from=0) public final long startPositionMs;
field public final boolean startsAtKeyFrame;
}

public static final class [Link] {


ctor public [Link]();
method public [Link] build();
method public [Link]
setEndPositionMs(long);
method public [Link]
setRelativeToDefaultPosition(boolean);
method public [Link]
setRelativeToLiveWindow(boolean);
method public [Link]
setStartPositionMs(@IntRange(from=0) long);
method public [Link]
setStartsAtKeyFrame(boolean);
}

public static final class [Link] {


method public [Link]
buildUpon();
method @Nullable public byte[] getKeySetId();
field public final boolean forceDefaultLicenseUri;
field public final [Link]<[Link]>
forcedSessionTrackTypes;
field public final
[Link]<[Link],[Link]>
licenseRequestHeaders;
field @Nullable public final [Link] licenseUri;
field public final boolean multiSession;
field public final boolean playClearContentWithoutKey;
field public final [Link] scheme;
}

public static final class [Link] {


ctor public [Link]([Link]);
method public [Link] build();
method public [Link]
setForceDefaultLicenseUri(boolean);
method public [Link]
setForceSessionsForAudioAndVideoTracks(boolean);
method public [Link]
setForcedSessionTrackTypes([Link]<[Link]>);
method public [Link]
setKeySetId(@Nullable byte[]);
method public [Link]
setLicenseRequestHeaders([Link]<[Link],[Link]>);
method public [Link]
setLicenseUri(@Nullable [Link]);
method public [Link]
setLicenseUri(@Nullable String);
method public [Link]
setMultiSession(boolean);
method public [Link]
setPlayClearContentWithoutKey(boolean);
method public [Link]
setScheme([Link]);
}

public static final class [Link] {


method public [Link]
buildUpon();
field public static final [Link]
UNSET;
field public final long maxOffsetMs;
field public final float maxPlaybackSpeed;
field public final long minOffsetMs;
field public final float minPlaybackSpeed;
field public final long targetOffsetMs;
}

public static final class [Link] {


ctor public [Link]();
method public [Link] build();
method public [Link]
setMaxOffsetMs(long);
method public [Link]
setMaxPlaybackSpeed(float);
method public [Link]
setMinOffsetMs(long);
method public [Link]
setMinPlaybackSpeed(float);
method public [Link]
setTargetOffsetMs(long);
}

public static final class [Link] {


field @Nullable public final [Link]
adsConfiguration;
field @Nullable public final [Link]
drmConfiguration;
field @Nullable public final String mimeType;
field public final
[Link]<[Link]
nfiguration> subtitleConfigurations;
field @Nullable public final Object tag;
field public final [Link] uri;
}

public static final class [Link] {


method public [Link]
buildUpon();
field public static final [Link]
EMPTY;
field @Nullable public final [Link] extras;
field @Nullable public final [Link] mediaUri;
field @Nullable public final String searchQuery;
}

public static final class [Link] {


ctor public [Link]();
method public [Link] build();
method public [Link]
setExtras(@Nullable [Link]);
method public [Link]
setMediaUri(@Nullable [Link]);
method public [Link]
setSearchQuery(@Nullable String);
}

public static class [Link] {


method public [Link]
buildUpon();
field @Nullable public final String id;
field @Nullable public final String label;
field @Nullable public final String language;
field @Nullable public final String mimeType;
field @[Link] public final int roleFlags;
field @[Link] public final int selectionFlags;
field public final [Link] uri;
}

public static final class [Link] {


ctor public [Link]([Link]);
method public [Link] build();
method public [Link]
setId(@Nullable String);
method public [Link]
setLabel(@Nullable String);
method public [Link]
setLanguage(@Nullable String);
method public [Link]
setMimeType(@Nullable String);
method public [Link]
setRoleFlags(@[Link] int);
method public [Link]
setSelectionFlags(@[Link] int);
method public [Link]
setUri([Link]);
}

public final class MediaMetadata {


method public [Link] buildUpon();
field public static final [Link] EMPTY;
field @Deprecated public static final int FOLDER_TYPE_ALBUMS = 2; // 0x2
field @Deprecated public static final int FOLDER_TYPE_ARTISTS = 3; // 0x3
field @Deprecated public static final int FOLDER_TYPE_GENRES = 4; // 0x4
field @Deprecated public static final int FOLDER_TYPE_MIXED = 0; // 0x0
field @Deprecated public static final int FOLDER_TYPE_NONE = -1; // 0xffffffff
field @Deprecated public static final int FOLDER_TYPE_PLAYLISTS = 5; // 0x5
field @Deprecated public static final int FOLDER_TYPE_TITLES = 1; // 0x1
field @Deprecated public static final int FOLDER_TYPE_YEARS = 6; // 0x6
field public static final int MEDIA_TYPE_ALBUM = 10; // 0xa
field public static final int MEDIA_TYPE_ARTIST = 11; // 0xb
field public static final int MEDIA_TYPE_AUDIO_BOOK = 15; // 0xf
field public static final int MEDIA_TYPE_AUDIO_BOOK_CHAPTER = 2; // 0x2
field public static final int MEDIA_TYPE_FOLDER_ALBUMS = 21; // 0x15
field public static final int MEDIA_TYPE_FOLDER_ARTISTS = 22; // 0x16
field public static final int MEDIA_TYPE_FOLDER_AUDIO_BOOKS = 26; // 0x1a
field public static final int MEDIA_TYPE_FOLDER_GENRES = 23; // 0x17
field public static final int MEDIA_TYPE_FOLDER_MIXED = 20; // 0x14
field public static final int MEDIA_TYPE_FOLDER_MOVIES = 35; // 0x23
field public static final int MEDIA_TYPE_FOLDER_NEWS = 32; // 0x20
field public static final int MEDIA_TYPE_FOLDER_PLAYLISTS = 24; // 0x18
field public static final int MEDIA_TYPE_FOLDER_PODCASTS = 27; // 0x1b
field public static final int MEDIA_TYPE_FOLDER_RADIO_STATIONS = 31; // 0x1f
field public static final int MEDIA_TYPE_FOLDER_TRAILERS = 34; // 0x22
field public static final int MEDIA_TYPE_FOLDER_TV_CHANNELS = 28; // 0x1c
field public static final int MEDIA_TYPE_FOLDER_TV_SERIES = 29; // 0x1d
field public static final int MEDIA_TYPE_FOLDER_TV_SHOWS = 30; // 0x1e
field public static final int MEDIA_TYPE_FOLDER_VIDEOS = 33; // 0x21
field public static final int MEDIA_TYPE_FOLDER_YEARS = 25; // 0x19
field public static final int MEDIA_TYPE_GENRE = 12; // 0xc
field public static final int MEDIA_TYPE_MIXED = 0; // 0x0
field public static final int MEDIA_TYPE_MOVIE = 8; // 0x8
field public static final int MEDIA_TYPE_MUSIC = 1; // 0x1
field public static final int MEDIA_TYPE_NEWS = 5; // 0x5
field public static final int MEDIA_TYPE_PLAYLIST = 13; // 0xd
field public static final int MEDIA_TYPE_PODCAST = 16; // 0x10
field public static final int MEDIA_TYPE_PODCAST_EPISODE = 3; // 0x3
field public static final int MEDIA_TYPE_RADIO_STATION = 4; // 0x4
field public static final int MEDIA_TYPE_TRAILER = 7; // 0x7
field public static final int MEDIA_TYPE_TV_CHANNEL = 17; // 0x11
field public static final int MEDIA_TYPE_TV_SEASON = 19; // 0x13
field public static final int MEDIA_TYPE_TV_SERIES = 18; // 0x12
field public static final int MEDIA_TYPE_TV_SHOW = 9; // 0x9
field public static final int MEDIA_TYPE_VIDEO = 6; // 0x6
field public static final int MEDIA_TYPE_YEAR = 14; // 0xe
field public static final int PICTURE_TYPE_ARTIST_PERFORMER = 8; // 0x8
field public static final int PICTURE_TYPE_A_BRIGHT_COLORED_FISH = 17; // 0x11
field public static final int PICTURE_TYPE_BACK_COVER = 4; // 0x4
field public static final int PICTURE_TYPE_BAND_ARTIST_LOGO = 19; // 0x13
field public static final int PICTURE_TYPE_BAND_ORCHESTRA = 10; // 0xa
field public static final int PICTURE_TYPE_COMPOSER = 11; // 0xb
field public static final int PICTURE_TYPE_CONDUCTOR = 9; // 0x9
field public static final int PICTURE_TYPE_DURING_PERFORMANCE = 15; // 0xf
field public static final int PICTURE_TYPE_DURING_RECORDING = 14; // 0xe
field public static final int PICTURE_TYPE_FILE_ICON = 1; // 0x1
field public static final int PICTURE_TYPE_FILE_ICON_OTHER = 2; // 0x2
field public static final int PICTURE_TYPE_FRONT_COVER = 3; // 0x3
field public static final int PICTURE_TYPE_ILLUSTRATION = 18; // 0x12
field public static final int PICTURE_TYPE_LEAD_ARTIST_PERFORMER = 7; // 0x7
field public static final int PICTURE_TYPE_LEAFLET_PAGE = 5; // 0x5
field public static final int PICTURE_TYPE_LYRICIST = 12; // 0xc
field public static final int PICTURE_TYPE_MEDIA = 6; // 0x6
field public static final int PICTURE_TYPE_MOVIE_VIDEO_SCREEN_CAPTURE = 16; //
0x10
field public static final int PICTURE_TYPE_OTHER = 0; // 0x0
field public static final int PICTURE_TYPE_PUBLISHER_STUDIO_LOGO = 20; // 0x14
field public static final int PICTURE_TYPE_RECORDING_LOCATION = 13; // 0xd
field @Nullable public final CharSequence albumArtist;
field @Nullable public final CharSequence albumTitle;
field @Nullable public final CharSequence artist;
field @Nullable public final byte[] artworkData;
field @Nullable @[Link] public final
Integer artworkDataType;
field @Nullable public final [Link] artworkUri;
field @Nullable public final CharSequence compilation;
field @Nullable public final CharSequence composer;
field @Nullable public final CharSequence conductor;
field @Nullable public final CharSequence description;
field @Nullable public final Integer discNumber;
field @Nullable public final CharSequence displayTitle;
field @Nullable public final [Link] extras;
field @Deprecated @Nullable @[Link]
public final Integer folderType;
field @Nullable public final CharSequence genre;
field @Nullable public final Boolean isBrowsable;
field @Nullable public final Boolean isPlayable;
field @Nullable @[Link] public final
Integer mediaType;
field @Nullable public final [Link] overallRating;
field @Nullable public final Integer recordingDay;
field @Nullable public final Integer recordingMonth;
field @Nullable public final Integer recordingYear;
field @Nullable public final Integer releaseDay;
field @Nullable public final Integer releaseMonth;
field @Nullable public final Integer releaseYear;
field @Nullable public final CharSequence station;
field @Nullable public final CharSequence subtitle;
field @Nullable public final CharSequence title;
field @Nullable public final Integer totalDiscCount;
field @Nullable public final Integer totalTrackCount;
field @Nullable public final Integer trackNumber;
field @Nullable public final [Link] userRating;
field @Nullable public final CharSequence writer;
}

public static final class [Link] {


ctor public [Link]();
method public [Link] build();
method public [Link]
maybeSetArtworkData(byte[], @[Link] int);
method public [Link]
setAlbumArtist(@Nullable CharSequence);
method public [Link]
setAlbumTitle(@Nullable CharSequence);
method public [Link] setArtist(@Nullable
CharSequence);
method public [Link]
setArtworkData(@Nullable byte[], @Nullable
@[Link] Integer);
method public [Link]
setArtworkUri(@Nullable [Link]);
method public [Link]
setCompilation(@Nullable CharSequence);
method public [Link]
setComposer(@Nullable CharSequence);
method public [Link]
setConductor(@Nullable CharSequence);
method public [Link]
setDescription(@Nullable CharSequence);
method public [Link]
setDiscNumber(@Nullable Integer);
method public [Link]
setDisplayTitle(@Nullable CharSequence);
method public [Link] setExtras(@Nullable
[Link]);
method @Deprecated public [Link]
setFolderType(@Nullable @[Link] Integer);
method public [Link] setGenre(@Nullable
CharSequence);
method public [Link]
setIsBrowsable(@Nullable Boolean);
method public [Link]
setIsPlayable(@Nullable Boolean);
method public [Link]
setMediaType(@Nullable @[Link] Integer);
method public [Link]
setOverallRating(@Nullable [Link]);
method public [Link]
setRecordingDay(@IntRange(from=1, to=31) @Nullable Integer);
method public [Link]
setRecordingMonth(@IntRange(from=1, to=12) @Nullable Integer);
method public [Link]
setRecordingYear(@Nullable Integer);
method public [Link]
setReleaseDay(@IntRange(from=1, to=31) @Nullable Integer);
method public [Link]
setReleaseMonth(@IntRange(from=1, to=12) @Nullable Integer);
method public [Link]
setReleaseYear(@Nullable Integer);
method public [Link] setStation(@Nullable
CharSequence);
method public [Link]
setSubtitle(@Nullable CharSequence);
method public [Link] setTitle(@Nullable
CharSequence);
method public [Link]
setTotalDiscCount(@Nullable Integer);
method public [Link]
setTotalTrackCount(@Nullable Integer);
method public [Link]
setTrackNumber(@Nullable Integer);
method public [Link]
setUserRating(@Nullable [Link]);
method public [Link] setWriter(@Nullable
CharSequence);
}

@Deprecated @IntDef({[Link].FOLDER_TYPE_NONE,
[Link].FOLDER_TYPE_MIXED,
[Link].FOLDER_TYPE_TITLES,
[Link].FOLDER_TYPE_ALBUMS,
[Link].FOLDER_TYPE_ARTISTS,
[Link].FOLDER_TYPE_GENRES,
[Link].FOLDER_TYPE_PLAYLISTS,
[Link].FOLDER_TYPE_YEARS})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

@IntDef({[Link].MEDIA_TYPE_MIXED,
[Link].MEDIA_TYPE_MUSIC,
[Link].MEDIA_TYPE_AUDIO_BOOK_CHAPTER,
[Link].MEDIA_TYPE_PODCAST_EPISODE,
[Link].MEDIA_TYPE_RADIO_STATION,
[Link].MEDIA_TYPE_NEWS,
[Link].MEDIA_TYPE_VIDEO,
[Link].MEDIA_TYPE_TRAILER,
[Link].MEDIA_TYPE_MOVIE,
[Link].MEDIA_TYPE_TV_SHOW,
[Link].MEDIA_TYPE_ALBUM,
[Link].MEDIA_TYPE_ARTIST,
[Link].MEDIA_TYPE_GENRE,
[Link].MEDIA_TYPE_PLAYLIST,
[Link].MEDIA_TYPE_YEAR,
[Link].MEDIA_TYPE_AUDIO_BOOK,
[Link].MEDIA_TYPE_PODCAST,
[Link].MEDIA_TYPE_TV_CHANNEL,
[Link].MEDIA_TYPE_TV_SERIES,
[Link].MEDIA_TYPE_TV_SEASON,
[Link].MEDIA_TYPE_FOLDER_MIXED,
[Link].MEDIA_TYPE_FOLDER_ALBUMS,
[Link].MEDIA_TYPE_FOLDER_ARTISTS,
[Link].MEDIA_TYPE_FOLDER_GENRES,
[Link].MEDIA_TYPE_FOLDER_PLAYLISTS,
[Link].MEDIA_TYPE_FOLDER_YEARS,
[Link].MEDIA_TYPE_FOLDER_AUDIO_BOOKS,
[Link].MEDIA_TYPE_FOLDER_PODCASTS,
[Link].MEDIA_TYPE_FOLDER_TV_CHANNELS,
[Link].MEDIA_TYPE_FOLDER_TV_SERIES,
[Link].MEDIA_TYPE_FOLDER_TV_SHOWS,
[Link].MEDIA_TYPE_FOLDER_RADIO_STATIONS,
[Link].MEDIA_TYPE_FOLDER_NEWS,
[Link].MEDIA_TYPE_FOLDER_VIDEOS,
[Link].MEDIA_TYPE_FOLDER_TRAILERS,
[Link].MEDIA_TYPE_FOLDER_MOVIES})
@[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

@IntDef({[Link].PICTURE_TYPE_OTHER,
[Link].PICTURE_TYPE_FILE_ICON,
[Link].PICTURE_TYPE_FILE_ICON_OTHER,
[Link].PICTURE_TYPE_FRONT_COVER,
[Link].PICTURE_TYPE_BACK_COVER,
[Link].PICTURE_TYPE_LEAFLET_PAGE,
[Link].PICTURE_TYPE_MEDIA,
[Link].PICTURE_TYPE_LEAD_ARTIST_PERFORMER,
[Link].PICTURE_TYPE_ARTIST_PERFORMER,
[Link].PICTURE_TYPE_CONDUCTOR,
[Link].PICTURE_TYPE_BAND_ORCHESTRA,
[Link].PICTURE_TYPE_COMPOSER,
[Link].PICTURE_TYPE_LYRICIST,
[Link].PICTURE_TYPE_RECORDING_LOCATION,
[Link].PICTURE_TYPE_DURING_RECORDING,
[Link].PICTURE_TYPE_DURING_PERFORMANCE,
[Link].PICTURE_TYPE_MOVIE_VIDEO_SCREEN_CAPTURE,
[Link].PICTURE_TYPE_A_BRIGHT_COLORED_FISH,
[Link].PICTURE_TYPE_ILLUSTRATION,
[Link].PICTURE_TYPE_BAND_ARTIST_LOGO,
[Link].PICTURE_TYPE_PUBLISHER_STUDIO_LOGO})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

public final class MimeTypes {


field public static final String APPLICATION_AIT = "application/[Link]";
field public static final String APPLICATION_CEA608 = "application/cea-608";
field public static final String APPLICATION_CEA708 = "application/cea-708";
field public static final String APPLICATION_DVBSUBS = "application/dvbsubs";
field public static final String APPLICATION_ID3 = "application/id3";
field public static final String APPLICATION_M3U8 = "application/x-mpegURL";
field public static final String APPLICATION_MATROSKA = "application/x-
matroska";
field public static final String APPLICATION_MP4 = "application/mp4";
field public static final String APPLICATION_MP4CEA608 = "application/x-mp4-
cea-608";
field public static final String APPLICATION_MP4VTT = "application/x-mp4-vtt";
field public static final String APPLICATION_MPD = "application/dash+xml";
field public static final String APPLICATION_PGS = "application/pgs";
field @Deprecated public static final String APPLICATION_RAWCC =
"application/x-rawcc";
field public static final String APPLICATION_RTSP = "application/x-rtsp";
field public static final String APPLICATION_SDP = "application/sdp";
field public static final String APPLICATION_SS = "application/[Link]-
sstr+xml";
field public static final String APPLICATION_SUBRIP = "application/x-subrip";
field public static final String APPLICATION_TTML = "application/ttml+xml";
field public static final String APPLICATION_TX3G = "application/x-quicktime-
tx3g";
field public static final String APPLICATION_VOBSUB = "application/vobsub";
field public static final String APPLICATION_WEBM = "application/webm";
field public static final String AUDIO_AAC = "audio/mp4a-latm";
field public static final String AUDIO_AC3 = "audio/ac3";
field public static final String AUDIO_AC4 = "audio/ac4";
field public static final String AUDIO_ALAC = "audio/alac";
field public static final String AUDIO_ALAW = "audio/g711-alaw";
field public static final String AUDIO_AMR = "audio/amr";
field public static final String AUDIO_AMR_NB = "audio/3gpp";
field public static final String AUDIO_AMR_WB = "audio/amr-wb";
field public static final String AUDIO_DTS = "audio/[Link]";
field public static final String AUDIO_DTS_EXPRESS =
"audio/[Link];profile=lbr";
field public static final String AUDIO_DTS_HD = "audio/[Link]";
field public static final String AUDIO_E_AC3 = "audio/eac3";
field public static final String AUDIO_E_AC3_JOC = "audio/eac3-joc";
field public static final String AUDIO_FLAC = "audio/flac";
field public static final String AUDIO_MIDI = "audio/midi";
field public static final String AUDIO_MLAW = "audio/g711-mlaw";
field public static final String AUDIO_MP4 = "audio/mp4";
field public static final String AUDIO_MPEG = "audio/mpeg";
field public static final String AUDIO_MPEGH_MHA1 = "audio/mha1";
field public static final String AUDIO_MPEGH_MHM1 = "audio/mhm1";
field public static final String AUDIO_MPEG_L1 = "audio/mpeg-L1";
field public static final String AUDIO_MPEG_L2 = "audio/mpeg-L2";
field public static final String AUDIO_MSGSM = "audio/gsm";
field public static final String AUDIO_OGG = "audio/ogg";
field public static final String AUDIO_OPUS = "audio/opus";
field public static final String AUDIO_RAW = "audio/raw";
field public static final String AUDIO_TRUEHD = "audio/true-hd";
field public static final String AUDIO_VORBIS = "audio/vorbis";
field public static final String AUDIO_WAV = "audio/wav";
field public static final String AUDIO_WEBM = "audio/webm";
field public static final String IMAGE_JPEG = "image/jpeg";
field public static final String TEXT_SSA = "text/x-ssa";
field public static final String TEXT_VTT = "text/vtt";
field public static final String VIDEO_AV1 = "video/av01";
field public static final String VIDEO_AVI = "video/x-msvideo";
field public static final String VIDEO_DIVX = "video/divx";
field public static final String VIDEO_DOLBY_VISION = "video/dolby-vision";
field public static final String VIDEO_H263 = "video/3gpp";
field public static final String VIDEO_H264 = "video/avc";
field public static final String VIDEO_H265 = "video/hevc";
field public static final String VIDEO_MJPEG = "video/mjpeg";
field public static final String VIDEO_MP2T = "video/mp2t";
field public static final String VIDEO_MP4 = "video/mp4";
field public static final String VIDEO_MP42 = "video/mp42";
field public static final String VIDEO_MP43 = "video/mp43";
field public static final String VIDEO_MP4V = "video/mp4v-es";
field public static final String VIDEO_MPEG = "video/mpeg";
field public static final String VIDEO_MPEG2 = "video/mpeg2";
field public static final String VIDEO_OGG = "video/ogg";
field public static final String VIDEO_PS = "video/mp2p";
field public static final String VIDEO_VC1 = "video/wvc1";
field public static final String VIDEO_WEBM = "video/webm";
}

public final class PercentageRating extends [Link] {


ctor public PercentageRating();
ctor public PercentageRating(@FloatRange(from=0, to=100) float);
method public float getPercent();
method public boolean isRated();
}

public class PlaybackException extends [Link] {


method @CallSuper public boolean errorInfoEquals(@Nullable
[Link]);
method public final String getErrorCodeName();
method public static String
getErrorCodeName(@[Link] int);
field public static final int CUSTOM_ERROR_CODE_BASE = 1000000; // 0xf4240
field public static final int ERROR_CODE_AUDIO_TRACK_INIT_FAILED = 5001; //
0x1389
field public static final int ERROR_CODE_AUDIO_TRACK_OFFLOAD_INIT_FAILED =
5004; // 0x138c
field public static final int ERROR_CODE_AUDIO_TRACK_OFFLOAD_WRITE_FAILED =
5003; // 0x138b
field public static final int ERROR_CODE_AUDIO_TRACK_WRITE_FAILED = 5002; //
0x138a
field public static final int ERROR_CODE_AUTHENTICATION_EXPIRED = -102; //
0xffffff9a
field public static final int ERROR_CODE_BAD_VALUE = -3; // 0xfffffffd
field public static final int ERROR_CODE_BEHIND_LIVE_WINDOW = 1002; // 0x3ea
field public static final int ERROR_CODE_CONCURRENT_STREAM_LIMIT = -104; //
0xffffff98
field public static final int ERROR_CODE_CONTENT_ALREADY_PLAYING = -110; //
0xffffff92
field public static final int ERROR_CODE_DECODER_INIT_FAILED = 4001; // 0xfa1
field public static final int ERROR_CODE_DECODER_QUERY_FAILED = 4002; // 0xfa2
field public static final int ERROR_CODE_DECODING_FAILED = 4003; // 0xfa3
field public static final int ERROR_CODE_DECODING_FORMAT_EXCEEDS_CAPABILITIES =
4004; // 0xfa4
field public static final int ERROR_CODE_DECODING_FORMAT_UNSUPPORTED = 4005; //
0xfa5
field public static final int ERROR_CODE_DISCONNECTED = -100; // 0xffffff9c
field public static final int ERROR_CODE_DRM_CONTENT_ERROR = 6003; // 0x1773
field public static final int ERROR_CODE_DRM_DEVICE_REVOKED = 6007; // 0x1777
field public static final int ERROR_CODE_DRM_DISALLOWED_OPERATION = 6005; //
0x1775
field public static final int ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED = 6004;
// 0x1774
field public static final int ERROR_CODE_DRM_LICENSE_EXPIRED = 6008; // 0x1778
field public static final int ERROR_CODE_DRM_PROVISIONING_FAILED = 6002; //
0x1772
field public static final int ERROR_CODE_DRM_SCHEME_UNSUPPORTED = 6001; //
0x1771
field public static final int ERROR_CODE_DRM_SYSTEM_ERROR = 6006; // 0x1776
field public static final int ERROR_CODE_DRM_UNSPECIFIED = 6000; // 0x1770
field public static final int ERROR_CODE_END_OF_PLAYLIST = -109; // 0xffffff93
field public static final int ERROR_CODE_FAILED_RUNTIME_CHECK = 1004; // 0x3ec
field public static final int ERROR_CODE_INVALID_STATE = -2; // 0xfffffffe
field public static final int ERROR_CODE_IO_BAD_HTTP_STATUS = 2004; // 0x7d4
field public static final int ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED = 2007; //
0x7d7
field public static final int ERROR_CODE_IO_FILE_NOT_FOUND = 2005; // 0x7d5
field public static final int ERROR_CODE_IO_INVALID_HTTP_CONTENT_TYPE =
2003; // 0x7d3
field public static final int ERROR_CODE_IO_NETWORK_CONNECTION_FAILED =
2001; // 0x7d1
field public static final int ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT =
2002; // 0x7d2
field public static final int ERROR_CODE_IO_NO_PERMISSION = 2006; // 0x7d6
field public static final int ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE =
2008; // 0x7d8
field public static final int ERROR_CODE_IO_UNSPECIFIED = 2000; // 0x7d0
field public static final int ERROR_CODE_NOT_AVAILABLE_IN_REGION = -106; //
0xffffff96
field public static final int ERROR_CODE_NOT_SUPPORTED = -6; // 0xfffffffa
field public static final int ERROR_CODE_PARENTAL_CONTROL_RESTRICTED = -105; //
0xffffff97
field public static final int ERROR_CODE_PARSING_CONTAINER_MALFORMED = 3001; //
0xbb9
field public static final int ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED =
3003; // 0xbbb
field public static final int ERROR_CODE_PARSING_MANIFEST_MALFORMED = 3002; //
0xbba
field public static final int ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED =
3004; // 0xbbc
field public static final int ERROR_CODE_PERMISSION_DENIED = -4; // 0xfffffffc
field public static final int ERROR_CODE_PREMIUM_ACCOUNT_REQUIRED = -103; //
0xffffff99
field public static final int ERROR_CODE_REMOTE_ERROR = 1001; // 0x3e9
field public static final int ERROR_CODE_SETUP_REQUIRED = -108; // 0xffffff94
field public static final int ERROR_CODE_SKIP_LIMIT_REACHED = -107; //
0xffffff95
field public static final int ERROR_CODE_TIMEOUT = 1003; // 0x3eb
field public static final int ERROR_CODE_UNSPECIFIED = 1000; // 0x3e8
field @[Link] public final int
errorCode;
field public final long timestampMs;
}

@IntDef(open=true,
value={[Link].ERROR_CODE_INVALID_STATE,
[Link].ERROR_CODE_BAD_VALUE,
[Link].ERROR_CODE_PERMISSION_DENIED,
[Link].ERROR_CODE_NOT_SUPPORTED,
[Link].ERROR_CODE_DISCONNECTED,
[Link].ERROR_CODE_AUTHENTICATION_EXPIRED,
[Link].ERROR_CODE_PREMIUM_ACCOUNT_REQUIRED,
[Link].ERROR_CODE_CONCURRENT_STREAM_LIMIT,
[Link].ERROR_CODE_PARENTAL_CONTROL_RESTRICTED,
[Link].ERROR_CODE_NOT_AVAILABLE_IN_REGION,
[Link].ERROR_CODE_SKIP_LIMIT_REACHED,
[Link].ERROR_CODE_SETUP_REQUIRED,
[Link].ERROR_CODE_END_OF_PLAYLIST,
[Link].ERROR_CODE_CONTENT_ALREADY_PLAYING,
[Link].ERROR_CODE_UNSPECIFIED,
[Link].ERROR_CODE_REMOTE_ERROR,
[Link].ERROR_CODE_BEHIND_LIVE_WINDOW,
[Link].ERROR_CODE_TIMEOUT,
[Link].ERROR_CODE_FAILED_RUNTIME_CHECK,
[Link].ERROR_CODE_IO_UNSPECIFIED,
[Link].ERROR_CODE_IO_NETWORK_CONNECTION_FAILED,
[Link].ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT,
[Link].ERROR_CODE_IO_INVALID_HTTP_CONTENT_TYPE,
[Link].ERROR_CODE_IO_BAD_HTTP_STATUS,
[Link].ERROR_CODE_IO_FILE_NOT_FOUND,
[Link].ERROR_CODE_IO_NO_PERMISSION,
[Link].ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED,
[Link].ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE,
[Link].ERROR_CODE_PARSING_CONTAINER_MALFORMED,
[Link].ERROR_CODE_PARSING_MANIFEST_MALFORMED,
[Link].ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED,
[Link].ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED,
[Link].ERROR_CODE_DECODER_INIT_FAILED,
[Link].ERROR_CODE_DECODER_QUERY_FAILED,
[Link].ERROR_CODE_DECODING_FAILED,
[Link].ERROR_CODE_DECODING_FORMAT_EXCEEDS_CAPABIL
ITIES,
[Link].ERROR_CODE_DECODING_FORMAT_UNSUPPORTED,
[Link].ERROR_CODE_AUDIO_TRACK_INIT_FAILED,
[Link].ERROR_CODE_AUDIO_TRACK_WRITE_FAILED,
[Link].ERROR_CODE_AUDIO_TRACK_OFFLOAD_INIT_FAILED
,
[Link].ERROR_CODE_AUDIO_TRACK_OFFLOAD_WRITE_FAILE
D, [Link].ERROR_CODE_DRM_UNSPECIFIED,
[Link].ERROR_CODE_DRM_SCHEME_UNSUPPORTED,
[Link].ERROR_CODE_DRM_PROVISIONING_FAILED,
[Link].ERROR_CODE_DRM_CONTENT_ERROR,
[Link].ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED,
[Link].ERROR_CODE_DRM_DISALLOWED_OPERATION,
[Link].ERROR_CODE_DRM_SYSTEM_ERROR,
[Link].ERROR_CODE_DRM_DEVICE_REVOKED,
[Link].ERROR_CODE_DRM_LICENSE_EXPIRED})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

public final class PlaybackParameters {


ctor public PlaybackParameters(@FloatRange(from=0, fromInclusive=false) float);
ctor public PlaybackParameters(@FloatRange(from=0, fromInclusive=false) float,
@FloatRange(from=0, fromInclusive=false) float);
method @CheckResult public [Link]
withSpeed(@FloatRange(from=0, fromInclusive=false) float);
field public static final [Link] DEFAULT;
field public final float pitch;
field public final float speed;
}

public interface Player {


method public void addListener([Link]);
method public void addMediaItem([Link]);
method public void addMediaItem(int, [Link]);
method public void addMediaItems(int,
[Link]<[Link]>);
method public void
addMediaItems([Link]<[Link]>);
method public boolean canAdvertiseSession();
method public void clearMediaItems();
method public void clearVideoSurface();
method public void clearVideoSurface(@Nullable [Link]);
method public void clearVideoSurfaceHolder(@Nullable
[Link]);
method public void clearVideoSurfaceView(@Nullable [Link]);
method public void clearVideoTextureView(@Nullable [Link]);
method @Deprecated public void decreaseDeviceVolume();
method public void decreaseDeviceVolume(@[Link]
int);
method public [Link] getApplicationLooper();
method public [Link] getAudioAttributes();
method public [Link] getAvailableCommands();
method @IntRange(from=0, to=100) public int getBufferedPercentage();
method public long getBufferedPosition();
method public long getContentBufferedPosition();
method public long getContentDuration();
method public long getContentPosition();
method public int getCurrentAdGroupIndex();
method public int getCurrentAdIndexInAdGroup();
method public [Link] getCurrentCues();
method public long getCurrentLiveOffset();
method @Nullable public [Link] getCurrentMediaItem();
method public int getCurrentMediaItemIndex();
method public int getCurrentPeriodIndex();
method public long getCurrentPosition();
method public [Link] getCurrentTimeline();
method public [Link] getCurrentTracks();
method public [Link] getDeviceInfo();
method @IntRange(from=0) public int getDeviceVolume();
method public long getDuration();
method public long getMaxSeekToPreviousPosition();
method public [Link] getMediaItemAt(int);
method public int getMediaItemCount();
method public [Link] getMediaMetadata();
method public int getNextMediaItemIndex();
method public boolean getPlayWhenReady();
method public [Link]
getPlaybackParameters();
method @[Link] public int getPlaybackState();
method @[Link] public int
getPlaybackSuppressionReason();
method @Nullable public [Link]
getPlayerError();
method public [Link] getPlaylistMetadata();
method public int getPreviousMediaItemIndex();
method @[Link] public int getRepeatMode();
method public long getSeekBackIncrement();
method public long getSeekForwardIncrement();
method public boolean getShuffleModeEnabled();
method public long getTotalBufferedDuration();
method public [Link]
getTrackSelectionParameters();
method public [Link] getVideoSize();
method @FloatRange(from=0, to=1.0) public float getVolume();
method public boolean hasNextMediaItem();
method public boolean hasPreviousMediaItem();
method @Deprecated public void increaseDeviceVolume();
method public void increaseDeviceVolume(@[Link]
int);
method public boolean isCommandAvailable(@[Link]
int);
method public boolean isCurrentMediaItemDynamic();
method public boolean isCurrentMediaItemLive();
method public boolean isCurrentMediaItemSeekable();
method public boolean isDeviceMuted();
method public boolean isLoading();
method public boolean isPlaying();
method public boolean isPlayingAd();
method public void moveMediaItem(int, int);
method public void moveMediaItems(int, int, int);
method public void pause();
method public void play();
method public void prepare();
method public void release();
method public void removeListener([Link]);
method public void removeMediaItem(int);
method public void removeMediaItems(int, int);
method public void replaceMediaItem(int, [Link]);
method public void replaceMediaItems(int, int,
[Link]<[Link]>);
method public void seekBack();
method public void seekForward();
method public void seekTo(int, long);
method public void seekTo(long);
method public void seekToDefaultPosition();
method public void seekToDefaultPosition(int);
method public void seekToNext();
method public void seekToNextMediaItem();
method public void seekToPrevious();
method public void seekToPreviousMediaItem();
method public void setAudioAttributes([Link],
boolean);
method @Deprecated public void setDeviceMuted(boolean);
method public void setDeviceMuted(boolean,
@[Link] int);
method @Deprecated public void setDeviceVolume(@IntRange(from=0) int);
method public void setDeviceVolume(@IntRange(from=0) int,
@[Link] int);
method public void setMediaItem([Link]);
method public void setMediaItem([Link], boolean);
method public void setMediaItem([Link], long);
method public void
setMediaItems([Link]<[Link]>);
method public void
setMediaItems([Link]<[Link]>, boolean);
method public void
setMediaItems([Link]<[Link]>, int, long);
method public void setPlayWhenReady(boolean);
method public void
setPlaybackParameters([Link]);
method public void setPlaybackSpeed(@FloatRange(from=0, fromInclusive=false)
float);
method public void setPlaylistMetadata([Link]);
method public void setRepeatMode(@[Link]
int);
method public void setShuffleModeEnabled(boolean);
method public void
setTrackSelectionParameters([Link]);
method public void setVideoSurface(@Nullable [Link]);
method public void setVideoSurfaceHolder(@Nullable [Link]);
method public void setVideoSurfaceView(@Nullable [Link]);
method public void setVideoTextureView(@Nullable [Link]);
method public void setVolume(@FloatRange(from=0, to=1.0) float);
method public void stop();
field @Deprecated public static final int COMMAND_ADJUST_DEVICE_VOLUME = 26; //
0x1a
field public static final int COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS = 34; //
0x22
field public static final int COMMAND_CHANGE_MEDIA_ITEMS = 20; // 0x14
field public static final int COMMAND_GET_AUDIO_ATTRIBUTES = 21; // 0x15
field public static final int COMMAND_GET_CURRENT_MEDIA_ITEM = 16; // 0x10
field public static final int COMMAND_GET_DEVICE_VOLUME = 23; // 0x17
field @Deprecated public static final int COMMAND_GET_MEDIA_ITEMS_METADATA =
18; // 0x12
field public static final int COMMAND_GET_METADATA = 18; // 0x12
field public static final int COMMAND_GET_TEXT = 28; // 0x1c
field public static final int COMMAND_GET_TIMELINE = 17; // 0x11
field public static final int COMMAND_GET_TRACKS = 30; // 0x1e
field public static final int COMMAND_GET_VOLUME = 22; // 0x16
field public static final int COMMAND_INVALID = -1; // 0xffffffff
field public static final int COMMAND_PLAY_PAUSE = 1; // 0x1
field public static final int COMMAND_PREPARE = 2; // 0x2
field public static final int COMMAND_RELEASE = 32; // 0x20
field public static final int COMMAND_SEEK_BACK = 11; // 0xb
field public static final int COMMAND_SEEK_FORWARD = 12; // 0xc
field public static final int COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM = 5; // 0x5
field public static final int COMMAND_SEEK_TO_DEFAULT_POSITION = 4; // 0x4
field public static final int COMMAND_SEEK_TO_MEDIA_ITEM = 10; // 0xa
field public static final int COMMAND_SEEK_TO_NEXT = 9; // 0x9
field public static final int COMMAND_SEEK_TO_NEXT_MEDIA_ITEM = 8; // 0x8
field public static final int COMMAND_SEEK_TO_PREVIOUS = 7; // 0x7
field public static final int COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM = 6; // 0x6
field public static final int COMMAND_SET_AUDIO_ATTRIBUTES = 35; // 0x23
field @Deprecated public static final int COMMAND_SET_DEVICE_VOLUME = 25; //
0x19
field public static final int COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS = 33; //
0x21
field public static final int COMMAND_SET_MEDIA_ITEM = 31; // 0x1f
field @Deprecated public static final int COMMAND_SET_MEDIA_ITEMS_METADATA =
19; // 0x13
field public static final int COMMAND_SET_PLAYLIST_METADATA = 19; // 0x13
field public static final int COMMAND_SET_REPEAT_MODE = 15; // 0xf
field public static final int COMMAND_SET_SHUFFLE_MODE = 14; // 0xe
field public static final int COMMAND_SET_SPEED_AND_PITCH = 13; // 0xd
field public static final int COMMAND_SET_TRACK_SELECTION_PARAMETERS = 29; //
0x1d
field public static final int COMMAND_SET_VIDEO_SURFACE = 27; // 0x1b
field public static final int COMMAND_SET_VOLUME = 24; // 0x18
field public static final int COMMAND_STOP = 3; // 0x3
field public static final int DISCONTINUITY_REASON_AUTO_TRANSITION = 0; // 0x0
field public static final int DISCONTINUITY_REASON_INTERNAL = 5; // 0x5
field public static final int DISCONTINUITY_REASON_REMOVE = 4; // 0x4
field public static final int DISCONTINUITY_REASON_SEEK = 1; // 0x1
field public static final int DISCONTINUITY_REASON_SEEK_ADJUSTMENT = 2; // 0x2
field public static final int DISCONTINUITY_REASON_SILENCE_SKIP = 6; // 0x6
field public static final int DISCONTINUITY_REASON_SKIP = 3; // 0x3
field public static final int EVENT_AUDIO_ATTRIBUTES_CHANGED = 20; // 0x14
field public static final int EVENT_AUDIO_SESSION_ID = 21; // 0x15
field public static final int EVENT_AVAILABLE_COMMANDS_CHANGED = 13; // 0xd
field public static final int EVENT_CUES = 27; // 0x1b
field public static final int EVENT_DEVICE_INFO_CHANGED = 29; // 0x1d
field public static final int EVENT_DEVICE_VOLUME_CHANGED = 30; // 0x1e
field public static final int EVENT_IS_LOADING_CHANGED = 3; // 0x3
field public static final int EVENT_IS_PLAYING_CHANGED = 7; // 0x7
field public static final int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED = 18;
// 0x12
field public static final int EVENT_MEDIA_ITEM_TRANSITION = 1; // 0x1
field public static final int EVENT_MEDIA_METADATA_CHANGED = 14; // 0xe
field public static final int EVENT_METADATA = 28; // 0x1c
field public static final int EVENT_PLAYBACK_PARAMETERS_CHANGED = 12; // 0xc
field public static final int EVENT_PLAYBACK_STATE_CHANGED = 4; // 0x4
field public static final int EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED = 6; //
0x6
field public static final int EVENT_PLAYER_ERROR = 10; // 0xa
field public static final int EVENT_PLAYLIST_METADATA_CHANGED = 15; // 0xf
field public static final int EVENT_PLAY_WHEN_READY_CHANGED = 5; // 0x5
field public static final int EVENT_POSITION_DISCONTINUITY = 11; // 0xb
field public static final int EVENT_RENDERED_FIRST_FRAME = 26; // 0x1a
field public static final int EVENT_REPEAT_MODE_CHANGED = 8; // 0x8
field public static final int EVENT_SEEK_BACK_INCREMENT_CHANGED = 16; // 0x10
field public static final int EVENT_SEEK_FORWARD_INCREMENT_CHANGED = 17; //
0x11
field public static final int EVENT_SHUFFLE_MODE_ENABLED_CHANGED = 9; // 0x9
field public static final int EVENT_SKIP_SILENCE_ENABLED_CHANGED = 23; // 0x17
field public static final int EVENT_SURFACE_SIZE_CHANGED = 24; // 0x18
field public static final int EVENT_TIMELINE_CHANGED = 0; // 0x0
field public static final int EVENT_TRACKS_CHANGED = 2; // 0x2
field public static final int EVENT_TRACK_SELECTION_PARAMETERS_CHANGED = 19; //
0x13
field public static final int EVENT_VIDEO_SIZE_CHANGED = 25; // 0x19
field public static final int EVENT_VOLUME_CHANGED = 22; // 0x16
field public static final int MEDIA_ITEM_TRANSITION_REASON_AUTO = 1; // 0x1
field public static final int MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED =
3; // 0x3
field public static final int MEDIA_ITEM_TRANSITION_REASON_REPEAT = 0; // 0x0
field public static final int MEDIA_ITEM_TRANSITION_REASON_SEEK = 2; // 0x2
field public static final int PLAYBACK_SUPPRESSION_REASON_NONE = 0; // 0x0
field public static final int
PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS = 1; // 0x1
field public static final int
PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT = 3; // 0x3
field @Deprecated public static final int
PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_ROUTE = 2; // 0x2
field public static final int
PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY = 3; // 0x3
field public static final int PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS =
2; // 0x2
field public static final int PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM =
5; // 0x5
field public static final int PLAY_WHEN_READY_CHANGE_REASON_REMOTE = 4; // 0x4
field public static final int PLAY_WHEN_READY_CHANGE_REASON_SUPPRESSED_TOO_LONG
= 6; // 0x6
field public static final int PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST =
1; // 0x1
field public static final int REPEAT_MODE_ALL = 2; // 0x2
field public static final int REPEAT_MODE_OFF = 0; // 0x0
field public static final int REPEAT_MODE_ONE = 1; // 0x1
field public static final int STATE_BUFFERING = 2; // 0x2
field public static final int STATE_ENDED = 4; // 0x4
field public static final int STATE_IDLE = 1; // 0x1
field public static final int STATE_READY = 3; // 0x3
field public static final int TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED = 0; //
0x0
field public static final int TIMELINE_CHANGE_REASON_SOURCE_UPDATE = 1; // 0x1
}

@IntDef({[Link].COMMAND_INVALID,
[Link].COMMAND_PLAY_PAUSE,
[Link].COMMAND_PREPARE,
[Link].COMMAND_STOP,
[Link].COMMAND_SEEK_TO_DEFAULT_POSITION,
[Link].COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM,
[Link].COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM,
[Link].COMMAND_SEEK_TO_PREVIOUS,
[Link].COMMAND_SEEK_TO_NEXT_MEDIA_ITEM,
[Link].COMMAND_SEEK_TO_NEXT,
[Link].COMMAND_SEEK_TO_MEDIA_ITEM,
[Link].COMMAND_SEEK_BACK,
[Link].COMMAND_SEEK_FORWARD,
[Link].COMMAND_SET_SPEED_AND_PITCH,
[Link].COMMAND_SET_SHUFFLE_MODE,
[Link].COMMAND_SET_REPEAT_MODE,
[Link].COMMAND_GET_CURRENT_MEDIA_ITEM,
[Link].COMMAND_GET_TIMELINE,
[Link].COMMAND_GET_MEDIA_ITEMS_METADATA,
[Link].COMMAND_GET_METADATA,
[Link].COMMAND_SET_MEDIA_ITEMS_METADATA,
[Link].COMMAND_SET_PLAYLIST_METADATA,
[Link].COMMAND_SET_MEDIA_ITEM,
[Link].COMMAND_CHANGE_MEDIA_ITEMS,
[Link].COMMAND_GET_AUDIO_ATTRIBUTES,
[Link].COMMAND_GET_VOLUME,
[Link].COMMAND_GET_DEVICE_VOLUME,
[Link].COMMAND_SET_VOLUME,
[Link].COMMAND_SET_DEVICE_VOLUME,
[Link].COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS,
[Link].COMMAND_ADJUST_DEVICE_VOLUME,
[Link].COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS,
[Link].COMMAND_SET_AUDIO_ATTRIBUTES,
[Link].COMMAND_SET_VIDEO_SURFACE,
[Link].COMMAND_GET_TEXT,
[Link].COMMAND_SET_TRACK_SELECTION_PARAMETERS,
[Link].COMMAND_GET_TRACKS,
[Link].COMMAND_RELEASE}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link]
{
}

public static final class [Link] {


method public boolean contains(@[Link] int);
method public boolean containsAny(@[Link]
int...);
method @[Link] public int get(int);
method public int size();
field public static final [Link] EMPTY;
}

@IntDef({[Link].DISCONTINUITY_REASON_AUTO_TRANSITION,
[Link].DISCONTINUITY_REASON_SEEK,
[Link].DISCONTINUITY_REASON_SEEK_ADJUSTMENT,
[Link].DISCONTINUITY_REASON_SKIP,
[Link].DISCONTINUITY_REASON_REMOVE,
[Link].DISCONTINUITY_REASON_INTERNAL,
[Link].DISCONTINUITY_REASON_SILENCE_SKIP})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

@IntDef({[Link].EVENT_TIMELINE_CHANGED,
[Link].EVENT_MEDIA_ITEM_TRANSITION,
[Link].EVENT_TRACKS_CHANGED,
[Link].EVENT_IS_LOADING_CHANGED,
[Link].EVENT_PLAYBACK_STATE_CHANGED,
[Link].EVENT_PLAY_WHEN_READY_CHANGED,
[Link].EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED,
[Link].EVENT_IS_PLAYING_CHANGED,
[Link].EVENT_REPEAT_MODE_CHANGED,
[Link].EVENT_SHUFFLE_MODE_ENABLED_CHANGED,
[Link].EVENT_PLAYER_ERROR,
[Link].EVENT_POSITION_DISCONTINUITY,
[Link].EVENT_PLAYBACK_PARAMETERS_CHANGED,
[Link].EVENT_AVAILABLE_COMMANDS_CHANGED,
[Link].EVENT_MEDIA_METADATA_CHANGED,
[Link].EVENT_PLAYLIST_METADATA_CHANGED,
[Link].EVENT_SEEK_BACK_INCREMENT_CHANGED,
[Link].EVENT_SEEK_FORWARD_INCREMENT_CHANGED,
[Link].EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED,
[Link].EVENT_TRACK_SELECTION_PARAMETERS_CHANGED,
[Link].EVENT_AUDIO_ATTRIBUTES_CHANGED,
[Link].EVENT_AUDIO_SESSION_ID,
[Link].EVENT_VOLUME_CHANGED,
[Link].EVENT_SKIP_SILENCE_ENABLED_CHANGED,
[Link].EVENT_SURFACE_SIZE_CHANGED,
[Link].EVENT_VIDEO_SIZE_CHANGED,
[Link].EVENT_RENDERED_FIRST_FRAME,
[Link].EVENT_CUES,
[Link].EVENT_METADATA,
[Link].EVENT_DEVICE_INFO_CHANGED,
[Link].EVENT_DEVICE_VOLUME_CHANGED})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link] {
}

public static final class [Link] {


method public boolean contains(@[Link] int);
method public boolean containsAny(@[Link] int...);
method @[Link] public int get(int);
method public int size();
}

public static interface [Link] {


method public default void
onAudioAttributesChanged([Link]);
method public default void
onAvailableCommandsChanged([Link]);
method public default void onCues([Link]);
method public default void
onDeviceInfoChanged([Link]);
method public default void onDeviceVolumeChanged(int, boolean);
method public default void onEvents([Link],
[Link]);
method public default void onIsLoadingChanged(boolean);
method public default void onIsPlayingChanged(boolean);
method public default void onMaxSeekToPreviousPositionChanged(long);
method public default void onMediaItemTransition(@Nullable
[Link],
@[Link] int);
method public default void
onMediaMetadataChanged([Link]);
method public default void onPlayWhenReadyChanged(boolean,
@[Link] int);
method public default void
onPlaybackParametersChanged([Link]);
method public default void
onPlaybackStateChanged(@[Link] int);
method public default void
onPlaybackSuppressionReasonChanged(@[Link]
onReason int);
method public default void
onPlayerError([Link]);
method public default void onPlayerErrorChanged(@Nullable
[Link]);
method public default void
onPlaylistMetadataChanged([Link]);
method public default void
onPositionDiscontinuity([Link],
[Link],
@[Link] int);
method public default void onRenderedFirstFrame();
method public default void
onRepeatModeChanged(@[Link] int);
method public default void onSeekBackIncrementChanged(long);
method public default void onSeekForwardIncrementChanged(long);
method public default void onShuffleModeEnabledChanged(boolean);
method public default void onSkipSilenceEnabledChanged(boolean);
method public default void onSurfaceSizeChanged(int, int);
method public default void onTimelineChanged([Link],
@[Link] int);
method public default void
onTrackSelectionParametersChanged([Link]);
method public default void onTracksChanged([Link]);
method public default void
onVideoSizeChanged([Link]);
method public default void onVolumeChanged(float);
}

@IntDef({[Link].MEDIA_ITEM_TRANSITION_REASON_REPEAT,
[Link].MEDIA_ITEM_TRANSITION_REASON_AUTO,
[Link].MEDIA_ITEM_TRANSITION_REASON_SEEK,
[Link].MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

@IntDef({[Link].PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
[Link].PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS,
[Link].PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY,
[Link].PLAY_WHEN_READY_CHANGE_REASON_REMOTE,
[Link].PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM,
[Link].PLAY_WHEN_READY_CHANGE_REASON_SUPPRESSED_TOO_LONG})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

@IntDef({[Link].PLAYBACK_SUPPRESSION_REASON_NONE,
[Link].PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOS
S,
[Link].PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_ROUTE,
[Link].PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

public static final class [Link] {


field public final int adGroupIndex;
field public final int adIndexInAdGroup;
field public final long contentPositionMs;
field public final int mediaItemIndex;
field public final int periodIndex;
field @Nullable public final Object periodUid;
field public final long positionMs;
field @Nullable public final Object windowUid;
}

@IntDef({[Link].REPEAT_MODE_OFF,
[Link].REPEAT_MODE_ONE,
[Link].REPEAT_MODE_ALL}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

@IntDef({[Link].STATE_IDLE,
[Link].STATE_BUFFERING,
[Link].STATE_READY,
[Link].STATE_ENDED}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link] {
}
@IntDef({[Link].TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
[Link].TIMELINE_CHANGE_REASON_SOURCE_UPDATE})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

public abstract class Rating {


method public abstract boolean isRated();
}

public final class StarRating extends [Link] {


ctor public StarRating(@IntRange(from=1) int);
ctor public StarRating(@IntRange(from=1) int, @FloatRange(from=0.0) float);
method @IntRange(from=1) public int getMaxStars();
method public float getStarRating();
method public boolean isRated();
}

public final class ThumbRating extends [Link] {


ctor public ThumbRating();
ctor public ThumbRating(boolean);
method public boolean isRated();
method public boolean isThumbsUp();
}

public abstract class Timeline {


method public int getFirstWindowIndex(boolean);
method public abstract int getIndexOfPeriod(Object);
method public int getLastWindowIndex(boolean);
method public final int getNextPeriodIndex(int,
[Link], [Link],
@[Link] int, boolean);
method public int getNextWindowIndex(int,
@[Link] int, boolean);
method public final [Link] getPeriod(int,
[Link]);
method public abstract [Link] getPeriod(int,
[Link], boolean);
method public [Link] getPeriodByUid(Object,
[Link]);
method public abstract int getPeriodCount();
method public final [Link]<[Link],[Link]>
getPeriodPositionUs([Link],
[Link], int, long);
method @Nullable public final
[Link]<[Link],[Link]>
getPeriodPositionUs([Link],
[Link], int, long, long);
method public int getPreviousWindowIndex(int,
@[Link] int, boolean);
method public abstract Object getUidOfPeriod(int);
method public final [Link] getWindow(int,
[Link]);
method public abstract [Link] getWindow(int,
[Link], long);
method public abstract int getWindowCount();
method public final boolean isEmpty();
method public final boolean isLastPeriod(int,
[Link], [Link],
@[Link] int, boolean);
field public static final [Link] EMPTY;
}

public static final class [Link] {


ctor public [Link]();
method public int getAdCountInAdGroup(int);
method public long getAdDurationUs(int, int);
method public int getAdGroupCount();
method public int getAdGroupIndexAfterPositionUs(long);
method public int getAdGroupIndexForPositionUs(long);
method public long getAdGroupTimeUs(int);
method public long getAdResumePositionUs();
method @Nullable public Object getAdsId();
method public long getDurationMs();
method public long getDurationUs();
method public int getFirstAdIndexToPlay(int);
method public int getNextAdIndexToPlay(int, int);
method public long getPositionInWindowMs();
method public long getPositionInWindowUs();
method public int getRemovedAdGroupCount();
method public boolean hasPlayedAdGroup(int);
field @Nullable public Object id;
field public boolean isPlaceholder;
field @Nullable public Object uid;
field public int windowIndex;
}

public static final class [Link] {


ctor public [Link]();
method public long getCurrentUnixTimeMs();
method public long getDefaultPositionMs();
method public long getDefaultPositionUs();
method public long getDurationMs();
method public long getDurationUs();
method public long getPositionInFirstPeriodMs();
method public long getPositionInFirstPeriodUs();
method public boolean isLive();
field public static final Object SINGLE_WINDOW_UID;
field public long elapsedRealtimeEpochOffsetMs;
field public int firstPeriodIndex;
field public boolean isDynamic;
field public boolean isPlaceholder;
field public boolean isSeekable;
field public int lastPeriodIndex;
field @Nullable public [Link]
liveConfiguration;
field @Nullable public Object manifest;
field public [Link] mediaItem;
field public long presentationStartTimeMs;
field public Object uid;
field public long windowStartTimeMs;
}

public final class TrackGroup {


}

public final class TrackSelectionOverride {


ctor public TrackSelectionOverride([Link], int);
ctor public TrackSelectionOverride([Link],
[Link]<[Link]>);
method @[Link] public int getType();
field public final [Link] mediaTrackGroup;
field public final [Link]<[Link]>
trackIndices;
}

public class TrackSelectionParameters {


method public [Link]
buildUpon();
method public static [Link]
fromBundle([Link]);
method public static [Link]
getDefaults([Link]);
method @CallSuper public [Link] toBundle();
field public final [Link]<[Link]>
disabledTrackTypes;
field public final boolean forceHighestSupportedBitrate;
field public final boolean forceLowestBitrate;
field @[Link] public final int
ignoredTextSelectionFlags;
field public final int maxAudioBitrate;
field public final int maxAudioChannelCount;
field public final int maxVideoBitrate;
field public final int maxVideoFrameRate;
field public final int maxVideoHeight;
field public final int maxVideoWidth;
field public final int minVideoBitrate;
field public final int minVideoFrameRate;
field public final int minVideoHeight;
field public final int minVideoWidth;
field public final
[Link]<[Link],androidx.m
[Link]> overrides;
field public final [Link]<[Link]>
preferredAudioLanguages;
field public final [Link]<[Link]>
preferredAudioMimeTypes;
field @[Link] public final int
preferredAudioRoleFlags;
field public final [Link]<[Link]>
preferredTextLanguages;
field @[Link] public final int
preferredTextRoleFlags;
field public final [Link]<[Link]>
preferredVideoMimeTypes;
field @[Link] public final int
preferredVideoRoleFlags;
field public final boolean selectUndeterminedTextLanguage;
field public final int viewportHeight;
field public final boolean viewportOrientationMayChange;
field public final int viewportWidth;
}

public static class [Link] {


ctor public [Link]([Link]);
method public [Link]
addOverride([Link]);
method public [Link] build();
method public [Link]
clearOverride([Link]);
method public [Link]
clearOverrides();
method public [Link]
clearOverridesOfType(@[Link] int);
method public [Link]
clearVideoSizeConstraints();
method public [Link]
clearViewportSizeConstraints();
method public [Link]
setForceHighestSupportedBitrate(boolean);
method public [Link]
setForceLowestBitrate(boolean);
method public [Link]
setIgnoredTextSelectionFlags(@[Link] int);
method public [Link]
setMaxAudioBitrate(int);
method public [Link]
setMaxAudioChannelCount(int);
method public [Link]
setMaxVideoBitrate(int);
method public [Link]
setMaxVideoFrameRate(int);
method public [Link]
setMaxVideoSize(int, int);
method public [Link]
setMaxVideoSizeSd();
method public [Link]
setMinVideoBitrate(int);
method public [Link]
setMinVideoFrameRate(int);
method public [Link]
setMinVideoSize(int, int);
method public [Link]
setOverrideForType([Link]);
method public [Link]
setPreferredAudioLanguage(@Nullable String);
method public [Link]
setPreferredAudioLanguages([Link]...);
method public [Link]
setPreferredAudioMimeType(@Nullable String);
method public [Link]
setPreferredAudioMimeTypes([Link]...);
method public [Link]
setPreferredAudioRoleFlags(@[Link] int);
method public [Link]
setPreferredTextLanguage(@Nullable String);
method public [Link]
setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings([Link]
text);
method public [Link]
setPreferredTextLanguages([Link]...);
method public [Link]
setPreferredTextRoleFlags(@[Link] int);
method public [Link]
setPreferredVideoMimeType(@Nullable String);
method public [Link]
setPreferredVideoMimeTypes([Link]...);
method public [Link]
setPreferredVideoRoleFlags(@[Link] int);
method public [Link]
setSelectUndeterminedTextLanguage(boolean);
method public [Link]
setTrackTypeDisabled(@[Link] int, boolean);
method public [Link]
setViewportSize(int, int, boolean);
method public [Link]
setViewportSizeToPhysicalDisplaySize([Link], boolean);
}

public final class Tracks {


method public boolean containsType(@[Link] int);
method public
[Link]<[Link]>
getGroups();
method public boolean isEmpty();
method public boolean isTypeSelected(@[Link] int);
method public boolean isTypeSupported(@[Link] int);
method public boolean isTypeSupported(@[Link] int,
boolean);
field public static final [Link] EMPTY;
}

public static final class [Link] {


method public [Link] getMediaTrackGroup();
method public [Link] getTrackFormat(int);
method @[Link] public int getType();
method public boolean isAdaptiveSupported();
method public boolean isSelected();
method public boolean isSupported();
method public boolean isSupported(boolean);
method public boolean isTrackSelected(int);
method public boolean isTrackSupported(int);
method public boolean isTrackSupported(int, boolean);
method public [Link] toBundle();
field public final int length;
}

public final class VideoSize {


field public static final [Link] UNKNOWN;
field @IntRange(from=0) public final int height;
field @FloatRange(from=0, fromInclusive=false) public final float
pixelWidthHeightRatio;
field @Deprecated @IntRange(from=0, to=359) public final int
unappliedRotationDegrees;
field @IntRange(from=0) public final int width;
}

}
package [Link] {

public final class Cue {


field public static final int ANCHOR_TYPE_END = 2; // 0x2
field public static final int ANCHOR_TYPE_MIDDLE = 1; // 0x1
field public static final int ANCHOR_TYPE_START = 0; // 0x0
field public static final float DIMEN_UNSET = -3.4028235E38f;
field @Deprecated public static final [Link] EMPTY;
field public static final int LINE_TYPE_FRACTION = 0; // 0x0
field public static final int LINE_TYPE_NUMBER = 1; // 0x1
field public static final int TEXT_SIZE_TYPE_ABSOLUTE = 2; // 0x2
field public static final int TEXT_SIZE_TYPE_FRACTIONAL = 0; // 0x0
field public static final int TEXT_SIZE_TYPE_FRACTIONAL_IGNORE_PADDING = 1; //
0x1
field public static final int TYPE_UNSET = -2147483648; // 0x80000000
field public static final int VERTICAL_TYPE_LR = 2; // 0x2
field public static final int VERTICAL_TYPE_RL = 1; // 0x1
field @Nullable public final [Link] bitmap;
field public final float bitmapHeight;
field public final float line;
field @[Link] public final int lineAnchor;
field @[Link] public final int lineType;
field @Nullable public final [Link] multiRowAlignment;
field public final float position;
field @[Link] public final int
positionAnchor;
field public final float shearDegrees;
field public final float size;
field @Nullable public final CharSequence text;
field @Nullable public final [Link] textAlignment;
field public final float textSize;
field @[Link] public final int
textSizeType;
field @[Link] public final int
verticalType;
field public final int windowColor;
field public final boolean windowColorSet;
}

@IntDef({[Link].TYPE_UNSET,
[Link].ANCHOR_TYPE_START,
[Link].ANCHOR_TYPE_MIDDLE,
[Link].ANCHOR_TYPE_END}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link]
{
}

@IntDef({[Link].TYPE_UNSET,
[Link].LINE_TYPE_FRACTION,
[Link].LINE_TYPE_NUMBER}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface [Link] {
}

@IntDef({[Link].TYPE_UNSET,
[Link].TEXT_SIZE_TYPE_FRACTIONAL,
[Link].TEXT_SIZE_TYPE_FRACTIONAL_IGNORE_PADDING,
[Link].TEXT_SIZE_TYPE_ABSOLUTE})
@[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

@IntDef({[Link].TYPE_UNSET,
[Link].VERTICAL_TYPE_RL,
[Link].VERTICAL_TYPE_LR}) @[Link]
@[Link]([Link])
@[Link]({[Link],
[Link],
[Link],
[Link].LOCAL_VARIABLE,
[Link].TYPE_USE}) public static @interface
[Link] {
}

public final class CueGroup {


field public final
[Link]<[Link]> cues;
}

package [Link] {

public final class Util {


method public static boolean
checkCleartextTrafficPermitted([Link]...);
method @Nullable public static String
getAdaptiveMimeTypeForContentType(@[Link] int);
method @Nullable public static [Link] getDrmUuid(String);
method public static boolean handlePauseButtonAction(@Nullable
[Link]);
method public static boolean handlePlayButtonAction(@Nullable
[Link]);
method public static boolean handlePlayPauseButtonAction(@Nullable
[Link]);
method @[Link] public static int
inferContentType([Link]);
method @[Link] public static int
inferContentTypeForExtension(String);
method @[Link] public static int
inferContentTypeForUriAndMimeType([Link], @Nullable String);
method @Deprecated public static boolean
maybeRequestReadExternalStoragePermission([Link],
[Link]...);
method @Deprecated public static boolean
maybeRequestReadExternalStoragePermission([Link],
[Link]...);
method public static boolean
maybeRequestReadStoragePermission([Link],
[Link]...);
method
@[Link](result=false,
expression="#1") public static boolean shouldShowPlayButton(@Nullable
[Link]);
}

package [Link] {

public interface DataSource {


}

public static interface [Link] {


}

public class DataSourceException extends [Link] {


field @[Link] public final int
reason;
}

public final class DefaultDataSource implements


[Link] {
}

public static final class [Link] implements


[Link] {
ctor public [Link]([Link]);
ctor public [Link]([Link],
[Link]);
}

public class DefaultHttpDataSource implements


[Link] [Link] {
}

public static final class [Link] implements


[Link] {
ctor public [Link]();
}

public interface HttpDataSource extends [Link] {


}

public static final class [Link] extends


[Link] {
}

public static interface [Link] extends


[Link] {
}
public static class [Link] extends
[Link] {
field public static final int TYPE_CLOSE = 3; // 0x3
field public static final int TYPE_OPEN = 1; // 0x1
field public static final int TYPE_READ = 2; // 0x2
field @[Link]
public final int type;
}

@IntDef({[Link].TYPE_OPE
N, [Link].TYPE_READ,
[Link].TYPE_CLOSE})
@[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

public static final class [Link] extends


[Link] {
field public final String contentType;
}

public static final class [Link] extends


[Link] {
field public final byte[] responseBody;
field public final int responseCode;
field @Nullable public final String responseMessage;
}

package [Link] {

public class CronetDataSource implements [Link]


[Link] {
}

public static final class [Link] implements


[Link] {
ctor public [Link]([Link],
[Link]);
}

public final class CronetUtil {


method @Nullable public static [Link]
buildCronetEngine([Link]);
}

package [Link] {

public class OkHttpDataSource implements [Link]


[Link] {
}
public static final class [Link] implements
[Link] {
ctor public [Link]([Link]);
}

package [Link] {

public final class ExoPlaybackException extends


[Link] {
}

public interface ExoPlayer extends [Link] {


method public void
addAnalyticsListener([Link]);
method @Nullable public [Link]
getPlayerError();
method public void
removeAnalyticsListener([Link]);
method public void setHandleAudioBecomingNoisy(boolean);
method public void setWakeMode(@[Link] int);
}

public static final class [Link] {


ctor public [Link]([Link]);
method public [Link] build();
method public [Link]
setAudioAttributes([Link], boolean);
method public [Link]
setHandleAudioBecomingNoisy(boolean);
method public [Link]
setMediaSourceFactory([Link]);
method public [Link]
setWakeMode(@[Link] int);
}

package [Link] {

public interface AnalyticsListener {


}

package [Link] {

public final class FrameworkMediaDrm {


method public static boolean isCryptoSchemeSupported([Link]);
}

package [Link] {

public final class ImaAdsLoader implements


[Link] {
method public void release();
method public void setPlayer(@Nullable [Link]);
}

public static final class [Link] {


ctor public [Link]([Link]);
method public [Link] build();
}

public final class ImaServerSideAdInsertionMediaSource implements


[Link] {
}

public static final class [Link] {


method public
[Link]
release();
method public void setPlayer([Link]);
}

public static final class [Link] {


ctor public
[Link]([Link],
[Link]);
method public
[Link]
build();
method public
[Link]
setAdsLoaderState([Link]
.[Link]);
}

public static class [Link] {


method public static
[Link]
fromBundle([Link]);
method public [Link] toBundle();
}

public static final class [Link] implements


[Link] {
ctor public
[Link]([Link]
[Link],
[Link]);
}

package [Link] {

public final class DefaultMediaSourceFactory implements


[Link] {
ctor public DefaultMediaSourceFactory([Link]);
method public [Link]
clearLocalAdInsertionComponents();
method public [Link]
setDataSourceFactory([Link]);
method public [Link]
setLocalAdInsertionComponents([Link]
er, [Link]);
method public [Link]
setServerSideAdInsertionMediaSourceFactory(@Nullable
[Link]);
}

public interface MediaSource {


}

public static interface [Link] {


}

package [Link] {

public interface AdsLoader {


method public void release();
method public void setPlayer(@Nullable [Link]);
}

public static interface [Link] {


method @Nullable public [Link]
getAdsLoader([Link]);
}

package [Link] {

public class DebugTextViewHelper {


ctor public DebugTextViewHelper([Link],
[Link]);
method public final void start();
method public final void stop();
}

public class EventLogger implements


[Link] {
ctor public EventLogger();
ctor public EventLogger(String);
}

package [Link] {

public final class CommandButton {


field public final CharSequence displayName;
field @DrawableRes public final int iconResId;
field public final boolean isEnabled;
field @[Link] public final int playerCommand;
field @Nullable public final [Link]
sessionCommand;
}

public static final class [Link] {


ctor public [Link]();
method public [Link] build();
method public [Link]
setDisplayName(CharSequence);
method public [Link]
setEnabled(boolean);
method public [Link]
setExtras([Link]);
method public [Link]
setIconResId(@DrawableRes int);
method public [Link]
setPlayerCommand(@[Link] int);
method public [Link]
setSessionCommand([Link]);
}

public final class LibraryResult<V> {


method public static <V> [Link]<V>
ofError(@[Link] int);
method public static <V> [Link]<V>
ofError(@[Link] int, @Nullable
[Link]);
method public static
[Link]<[Link]>
ofItem([Link], @Nullable
[Link]);
method public static
[Link]<[Link]<andro
[Link]>>
ofItemList([Link]<[Link]>, @Nullable
[Link]);
method public static [Link]<[Link]>
ofVoid();
method public static [Link]<[Link]>
ofVoid(@Nullable [Link]);
field public static final int RESULT_ERROR_BAD_VALUE = -3; // 0xfffffffd
field public static final int RESULT_ERROR_INVALID_STATE = -2; // 0xfffffffe
field public static final int RESULT_ERROR_IO = -5; // 0xfffffffb
field public static final int RESULT_ERROR_NOT_SUPPORTED = -6; // 0xfffffffa
field public static final int RESULT_ERROR_PERMISSION_DENIED = -4; //
0xfffffffc
field public static final int RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED = -
102; // 0xffffff9a
field public static final int RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT = -
104; // 0xffffff98
field public static final int RESULT_ERROR_SESSION_DISCONNECTED = -100; //
0xffffff9c
field public static final int RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION = -
106; // 0xffffff96
field public static final int RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED
= -105; // 0xffffff97
field public static final int RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED = -
103; // 0xffffff99
field public static final int RESULT_ERROR_SESSION_SETUP_REQUIRED = -108; //
0xffffff94
field public static final int RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED = -
107; // 0xffffff95
field public static final int RESULT_ERROR_UNKNOWN = -1; // 0xffffffff
field public static final int RESULT_INFO_SKIPPED = 1; // 0x1
field public static final int RESULT_SUCCESS = 0; // 0x0
field public final long completionTimeMs;
field @Nullable public final
[Link] params;
field @[Link] public final int resultCode;
field @Nullable public final V value;
}

@IntDef({[Link].RESULT_SUCCESS,
[Link].INFO_CANCELLED,
[Link].ERROR_UNKNOWN,
[Link].ERROR_INVALID_STATE,
[Link].ERROR_BAD_VALUE,
[Link].ERROR_PERMISSION_DENIED,
[Link].ERROR_IO,
[Link].ERROR_SESSION_DISCONNECTED,
[Link].ERROR_NOT_SUPPORTED,
[Link].ERROR_SESSION_AUTHENTICATION_EXPIRED,
[Link].ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED,
[Link].ERROR_SESSION_CONCURRENT_STREAM_LIMIT,
[Link].ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED,
[Link].ERROR_SESSION_NOT_AVAILABLE_IN_REGION,
[Link].ERROR_SESSION_SKIP_LIMIT_REACHED,
[Link].ERROR_SESSION_SETUP_REQUIRED})
@[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

public final class MediaBrowser extends [Link] {


method public
[Link]<[Link]
esult<[Link]<[Link]>>>
getChildren(String, @IntRange(from=0) int, @IntRange(from=1) int, @Nullable
[Link]);
method public
[Link]<[Link]
esult<[Link]>> getItem(String);
method public
[Link]<[Link]
esult<[Link]>> getLibraryRoot(@Nullable
[Link]);
method public
[Link]<[Link]
esult<[Link]<[Link]>>>
getSearchResult(String, @IntRange(from=0) int, @IntRange(from=1) int, @Nullable
[Link]);
method public
[Link]<[Link]
esult<[Link]>> search(String, @Nullable
[Link]);
method public
[Link]<[Link]
esult<[Link]>> subscribe(String, @Nullable
[Link]);
method public
[Link]<[Link]
esult<[Link]>> unsubscribe(String);
}
public static final class [Link] {
ctor public [Link]([Link],
[Link]);
method public
[Link]<[Link]
wser> buildAsync();
method public [Link]
setApplicationLooper([Link]);
method public [Link]
setConnectionHints([Link]);
method public [Link]
setListener([Link]);
}

public static interface [Link] extends


[Link] {
method public default void
onChildrenChanged([Link], String, @IntRange(from=0)
int, @Nullable [Link]);
method public default void
onSearchResultChanged([Link], String,
@IntRange(from=0) int, @Nullable
[Link]);
}

public final class MediaConstants {


field public static final int ERROR_CODE_AUTHENTICATION_EXPIRED_COMPAT = 3; //
0x3
field public static final String
EXTRAS_KEY_ERROR_RESOLUTION_ACTION_INTENT_COMPAT =
"[Link].ERROR_RESOLUTION_ACTION_INTENT";
field public static final String
EXTRAS_KEY_ERROR_RESOLUTION_ACTION_LABEL_COMPAT =
"[Link].ERROR_RESOLUTION_ACTION_LABEL";
field public static final String EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_NEXT =
"[Link].ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_NEXT";
field public static final String EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_PREV =
"[Link].ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_PREVIOUS";
}

@[Link] public class MediaController


implements [Link] {
method public final void addListener([Link]);
method public final void addMediaItem([Link]);
method public final void addMediaItem(int, [Link]);
method public final void addMediaItems(int,
[Link]<[Link]>);
method public final void
addMediaItems([Link]<[Link]>);
method public final boolean canAdvertiseSession();
method public final void clearMediaItems();
method public final void clearVideoSurface();
method public final void clearVideoSurface(@Nullable [Link]);
method public final void clearVideoSurfaceHolder(@Nullable
[Link]);
method public final void clearVideoSurfaceView(@Nullable
[Link]);
method public final void clearVideoTextureView(@Nullable
[Link]);
method @Deprecated public final void decreaseDeviceVolume();
method public final void
decreaseDeviceVolume(@[Link] int);
method public final [Link] getApplicationLooper();
method public final [Link]
getAudioAttributes();
method public final [Link]
getAvailableCommands();
method public final [Link]
getAvailableSessionCommands();
method @IntRange(from=0, to=100) public final int getBufferedPercentage();
method public final long getBufferedPosition();
method @Nullable public final [Link]
getConnectedToken();
method public final long getContentBufferedPosition();
method public final long getContentDuration();
method public final long getContentPosition();
method public final int getCurrentAdGroupIndex();
method public final int getCurrentAdIndexInAdGroup();
method public final [Link] getCurrentCues();
method public final long getCurrentLiveOffset();
method @Nullable public final [Link]
getCurrentMediaItem();
method public final int getCurrentMediaItemIndex();
method public final int getCurrentPeriodIndex();
method public final long getCurrentPosition();
method public final [Link] getCurrentTimeline();
method public final [Link] getCurrentTracks();
method public final [Link] getDeviceInfo();
method @IntRange(from=0) public final int getDeviceVolume();
method public final long getDuration();
method public final long getMaxSeekToPreviousPosition();
method public final [Link] getMediaItemAt(int);
method public final int getMediaItemCount();
method public final [Link] getMediaMetadata();
method public final int getNextMediaItemIndex();
method public final boolean getPlayWhenReady();
method public final [Link]
getPlaybackParameters();
method @[Link] public final int
getPlaybackState();
method @[Link] public final
int getPlaybackSuppressionReason();
method @Nullable public final [Link]
getPlayerError();
method public final [Link] getPlaylistMetadata();
method public final int getPreviousMediaItemIndex();
method @[Link] public final int
getRepeatMode();
method public final long getSeekBackIncrement();
method public final long getSeekForwardIncrement();
method @Nullable public final [Link] getSessionActivity();
method public final boolean getShuffleModeEnabled();
method public final long getTotalBufferedDuration();
method public final [Link]
getTrackSelectionParameters();
method public final [Link] getVideoSize();
method @FloatRange(from=0, to=1) public final float getVolume();
method public final boolean hasNextMediaItem();
method public final boolean hasPreviousMediaItem();
method @Deprecated public final void increaseDeviceVolume();
method public final void
increaseDeviceVolume(@[Link] int);
method public final boolean
isCommandAvailable(@[Link] int);
method public final boolean isConnected();
method public final boolean isCurrentMediaItemDynamic();
method public final boolean isCurrentMediaItemLive();
method public final boolean isCurrentMediaItemSeekable();
method public final boolean isDeviceMuted();
method public final boolean isLoading();
method public final boolean isPlaying();
method public final boolean isPlayingAd();
method public final boolean
isSessionCommandAvailable([Link]);
method public final boolean
isSessionCommandAvailable(@[Link] int);
method public final void moveMediaItem(int, int);
method public final void moveMediaItems(int, int, int);
method public final void pause();
method public final void play();
method public final void prepare();
method public final void release();
method public static void releaseFuture([Link]<? extends
[Link]>);
method public final void
removeListener([Link]);
method public final void removeMediaItem(int);
method public final void removeMediaItems(int, int);
method public final void replaceMediaItem(int,
[Link]);
method public final void replaceMediaItems(int, int,
[Link]<[Link]>);
method public final void seekBack();
method public final void seekForward();
method public final void seekTo(int, long);
method public final void seekTo(long);
method public final void seekToDefaultPosition();
method public final void seekToDefaultPosition(int);
method public final void seekToNext();
method public final void seekToNextMediaItem();
method public final void seekToPrevious();
method public final void seekToPreviousMediaItem();
method public final
[Link]<[Link]
esult> sendCustomCommand([Link],
[Link]);
method public final void
setAudioAttributes([Link], boolean);
method @Deprecated public final void setDeviceMuted(boolean);
method public final void setDeviceMuted(boolean,
@[Link] int);
method @Deprecated public final void setDeviceVolume(@IntRange(from=0) int);
method public final void setDeviceVolume(@IntRange(from=0) int,
@[Link] int);
method public final void setMediaItem([Link]);
method public final void setMediaItem([Link],
boolean);
method public final void setMediaItem([Link], long);
method public final void
setMediaItems([Link]<[Link]>);
method public final void
setMediaItems([Link]<[Link]>, boolean);
method public final void
setMediaItems([Link]<[Link]>, int, long);
method public final void setPlayWhenReady(boolean);
method public final void
setPlaybackParameters([Link]);
method public final void setPlaybackSpeed(float);
method public final void
setPlaylistMetadata([Link]);
method public final
[Link]<[Link]
esult> setRating([Link]);
method public final
[Link]<[Link]
esult> setRating(String, [Link]);
method public final void
setRepeatMode(@[Link] int);
method public final void setShuffleModeEnabled(boolean);
method public final void
setTrackSelectionParameters([Link]);
method public final void setVideoSurface(@Nullable [Link]);
method public final void setVideoSurfaceHolder(@Nullable
[Link]);
method public final void setVideoSurfaceView(@Nullable
[Link]);
method public final void setVideoTextureView(@Nullable
[Link]);
method public final void setVolume(@FloatRange(from=0, to=1) float);
method public final void stop();
}

public static final class [Link] {


ctor public [Link]([Link],
[Link]);
method public
[Link]<[Link]
troller> buildAsync();
method public [Link]
setApplicationLooper([Link]);
method public [Link]
setConnectionHints([Link]);
method public [Link]
setListener([Link]);
}

public static interface [Link] {


method public default void
onAvailableSessionCommandsChanged([Link],
[Link]);
method public default
[Link]<[Link]
esult> onCustomCommand([Link],
[Link], [Link]);
method public default void
onDisconnected([Link]);
method public default void
onExtrasChanged([Link], [Link]);
method public default
[Link]<[Link]
esult> onSetCustomLayout([Link],
[Link]<[Link]>);
}

public abstract class MediaLibraryService extends


[Link] {
ctor public MediaLibraryService();
method @Nullable public abstract
[Link]
onGetSession([Link]);
field public static final String SERVICE_INTERFACE =
"[Link]";
}

public static final class [Link] {


field public final boolean isOffline;
field public final boolean isRecent;
field public final boolean isSuggested;
}

public static final class [Link] {


ctor public [Link]();
method public [Link]
build();
method public [Link]
setOffline(boolean);
method public [Link]
setRecent(boolean);
method public [Link]
setSuggested(boolean);
}

public static final class [Link] extends


[Link] {
method public void
notifyChildrenChanged([Link], String,
@IntRange(from=0) int, @Nullable
[Link]);
method public void notifyChildrenChanged(String, @IntRange(from=0) int,
@Nullable [Link]);
method public void
notifySearchResultChanged([Link],
String, @IntRange(from=0) int, @Nullable
[Link]);
}

public static final class [Link] {


ctor public
[Link]([Link]
yService, [Link],
[Link]);
method public [Link]
build();
method public
[Link]
setExtras([Link]);
method public
[Link]
setId(String);
method public
[Link]
setSessionActivity([Link]);
}

public static interface [Link] extends


[Link] {
method public default
[Link]<[Link]
esult<[Link]<[Link]>>>
onGetChildren([Link],
[Link], String, @IntRange(from=0) int,
@IntRange(from=1) int, @Nullable
[Link]);
method public default
[Link]<[Link]
esult<[Link]>>
onGetItem([Link],
[Link], String);
method public default
[Link]<[Link]
esult<[Link]>>
onGetLibraryRoot([Link],
[Link], @Nullable
[Link]);
method public default
[Link]<[Link]
esult<[Link]<[Link]>>>
onGetSearchResult([Link],
[Link], String, @IntRange(from=0) int,
@IntRange(from=1) int, @Nullable
[Link]);
method public default
[Link]<[Link]
esult<[Link]>>
onSearch([Link],
[Link], String, @Nullable
[Link]);
method public default
[Link]<[Link]
esult<[Link]>>
onSubscribe([Link],
[Link], String, @Nullable
[Link]);
method public default
[Link]<[Link]
esult<[Link]>>
onUnsubscribe([Link],
[Link], String);
}

public final class MediaNotification {


ctor public MediaNotification(@IntRange(from=1) int, [Link]);
field public final [Link] notification;
field @IntRange(from=1) public final int notificationId;
}

@[Link] public class MediaSession {


method public final void
broadcastCustomCommand([Link], [Link]);
method public final
[Link]<[Link]>
getConnectedControllers();
method @Nullable public final
[Link]
getControllerForCurrentRequest();
method public final String getId();
method public final [Link] getPlayer();
method @Nullable public final [Link] getSessionActivity();
method public final [Link] getToken();
method public final void release();
method public final
[Link]<[Link]
esult> sendCustomCommand([Link],
[Link], [Link]);
method public final void
setAvailableCommands([Link],
[Link], [Link]);
method public final
[Link]<[Link]
esult> setCustomLayout([Link],
[Link]<[Link]>);
method public final void
setCustomLayout([Link]<[Link]>);
method public final void setPlayer([Link]);
method public final void setSessionExtras([Link]);
method public final void
setSessionExtras([Link],
[Link]);
}

public static final class [Link] {


ctor public [Link]([Link],
[Link]);
method public [Link] build();
method public [Link]
setCallback([Link]);
method public [Link]
setExtras([Link]);
method public [Link] setId(String);
method public [Link]
setSessionActivity([Link]);
}

public static interface [Link] {


method public default
[Link]<[Link]<androidx.media3.c
[Link]>> onAddMediaItems([Link],
[Link],
[Link]<[Link]>);
method public default [Link]
onConnect([Link],
[Link]);
method public default
[Link]<[Link]
esult> onCustomCommand([Link],
[Link],
[Link], [Link]);
method public default void onDisconnected([Link],
[Link]);
method @Deprecated @[Link] public default
int onPlayerCommandRequest([Link],
[Link],
@[Link] int);
method public default void onPostConnect([Link],
[Link]);
method public default
[Link]<[Link]
esult> onSetRating([Link],
[Link],
[Link]);
method public default
[Link]<[Link]
esult> onSetRating([Link],
[Link], String,
[Link]);
}

public static final class [Link] {


method public static [Link]
accept([Link],
[Link]);
method public static [Link]
reject();
field public final [Link]
availablePlayerCommands;
field public final [Link]
availableSessionCommands;
field public final boolean isAccepted;
}

public static final class [Link] {


method public [Link] getConnectionHints();
method public int getControllerVersion();
method public String getPackageName();
method public int getUid();
field public static final String LEGACY_CONTROLLER_PACKAGE_NAME =
"[Link]";
field public static final int LEGACY_CONTROLLER_VERSION = 0; // 0x0
}

public abstract class MediaSessionService extends [Link] {


ctor public MediaSessionService();
method public final void addSession([Link]);
method public final [Link]<[Link]>
getSessions();
method public final boolean
isSessionAdded([Link]);
method @CallSuper @Nullable public [Link] onBind(@Nullable
[Link]);
method @Nullable public abstract [Link]
onGetSession([Link]);
method @Deprecated public void
onUpdateNotification([Link]);
method public void onUpdateNotification([Link],
boolean);
method public final void removeSession([Link]);
field public static final String SERVICE_INTERFACE =
"[Link]";
}

public final class SessionCommand {


ctor public SessionCommand(@[Link]
int);
ctor public SessionCommand(String, [Link]);
field public static final int COMMAND_CODE_CUSTOM = 0; // 0x0
field public static final int COMMAND_CODE_LIBRARY_GET_CHILDREN = 50003; //
0xc353
field public static final int COMMAND_CODE_LIBRARY_GET_ITEM = 50004; // 0xc354
field public static final int COMMAND_CODE_LIBRARY_GET_LIBRARY_ROOT = 50000; //
0xc350
field public static final int COMMAND_CODE_LIBRARY_GET_SEARCH_RESULT =
50006; // 0xc356
field public static final int COMMAND_CODE_LIBRARY_SEARCH = 50005; // 0xc355
field public static final int COMMAND_CODE_LIBRARY_SUBSCRIBE = 50001; // 0xc351
field public static final int COMMAND_CODE_LIBRARY_UNSUBSCRIBE = 50002; //
0xc352
field public static final int COMMAND_CODE_SESSION_SET_RATING = 40010; //
0x9c4a
field @[Link] public final int
commandCode;
field public final String customAction;
field public final [Link] customExtras;
}

@IntDef({[Link].COMMAND_CODE_CUSTOM,
[Link].COMMAND_CODE_SESSION_SET_RATING,
[Link].COMMAND_CODE_LIBRARY_GET_LIBRARY_ROOT,
[Link].COMMAND_CODE_LIBRARY_SUBSCRIBE,
[Link].COMMAND_CODE_LIBRARY_UNSUBSCRIBE,
[Link].COMMAND_CODE_LIBRARY_GET_CHILDREN,
[Link].COMMAND_CODE_LIBRARY_GET_ITEM,
[Link].COMMAND_CODE_LIBRARY_SEARCH,
[Link].COMMAND_CODE_LIBRARY_GET_SEARCH_RESULT})
@[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

public final class SessionCommands {


method public [Link] buildUpon();
method public boolean contains([Link]);
method public boolean
contains(@[Link] int);
field public static final [Link] EMPTY;
field public final
[Link]<[Link]>
commands;
}
public static final class [Link] {
ctor public [Link]();
method public [Link]
add([Link]);
method public [Link]
add(@[Link] int);
method public [Link]
addSessionCommands([Link]<[Link]>);
method public [Link] build();
method public [Link]
remove([Link]);
method public [Link]
remove(@[Link] int);
}

public final class SessionResult {


ctor public SessionResult(@[Link] int);
ctor public SessionResult(@[Link] int,
[Link]);
field public static final int RESULT_ERROR_BAD_VALUE = -3; // 0xfffffffd
field public static final int RESULT_ERROR_INVALID_STATE = -2; // 0xfffffffe
field public static final int RESULT_ERROR_IO = -5; // 0xfffffffb
field public static final int RESULT_ERROR_NOT_SUPPORTED = -6; // 0xfffffffa
field public static final int RESULT_ERROR_PERMISSION_DENIED = -4; //
0xfffffffc
field public static final int RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED = -
102; // 0xffffff9a
field public static final int RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT = -
104; // 0xffffff98
field public static final int RESULT_ERROR_SESSION_DISCONNECTED = -100; //
0xffffff9c
field public static final int RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION = -
106; // 0xffffff96
field public static final int RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED
= -105; // 0xffffff97
field public static final int RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED = -
103; // 0xffffff99
field public static final int RESULT_ERROR_SESSION_SETUP_REQUIRED = -108; //
0xffffff94
field public static final int RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED = -
107; // 0xffffff95
field public static final int RESULT_ERROR_UNKNOWN = -1; // 0xffffffff
field public static final int RESULT_INFO_SKIPPED = 1; // 0x1
field public static final int RESULT_SUCCESS = 0; // 0x0
field public final long completionTimeMs;
field public final [Link] extras;
field @[Link] public final int resultCode;
}

@IntDef({[Link].RESULT_SUCCESS,
[Link].INFO_CANCELLED,
[Link].ERROR_UNKNOWN,
[Link].ERROR_INVALID_STATE,
[Link].ERROR_BAD_VALUE,
[Link].ERROR_PERMISSION_DENIED,
[Link].ERROR_IO,
[Link].ERROR_SESSION_DISCONNECTED,
[Link].ERROR_NOT_SUPPORTED,
[Link].ERROR_SESSION_AUTHENTICATION_EXPIRED,
[Link].ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED,
[Link].ERROR_SESSION_CONCURRENT_STREAM_LIMIT,
[Link].ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED,
[Link].ERROR_SESSION_NOT_AVAILABLE_IN_REGION,
[Link].ERROR_SESSION_SKIP_LIMIT_REACHED,
[Link].ERROR_SESSION_SETUP_REQUIRED})
@[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

public final class SessionToken {


ctor public SessionToken([Link],
[Link]);
method public static
[Link]<[Link]>
getAllServiceTokens([Link]);
method public [Link] getExtras();
method public String getPackageName();
method public String getServiceName();
method public int getSessionVersion();
method @[Link] public int getType();
method public int getUid();
field public static final int TYPE_LIBRARY_SERVICE = 2; // 0x2
field public static final int TYPE_SESSION = 0; // 0x0
field public static final int TYPE_SESSION_SERVICE = 1; // 0x1
}

@IntDef({[Link].TYPE_SESSION,
[Link].TYPE_SESSION_SERVICE,
[Link].TYPE_LIBRARY_SERVICE})
@[Link]
@[Link]([Link])
@[Link]([Link].TYPE_USE) public
static @interface [Link] {
}

package [Link] {

public class PlayerView extends [Link] implements


[Link] {
ctor public PlayerView([Link]);
ctor public PlayerView([Link], @Nullable
[Link]);
ctor public PlayerView([Link], @Nullable
[Link], int);
method public [Link] getAdViewGroup();
method @Nullable public [Link] getPlayer();
method public boolean getUseController();
method public void onPause();
method public void onResume();
method public void setControllerVisibilityListener(@Nullable
[Link]);
method public void setErrorMessageProvider(@Nullable
[Link]<? super
[Link]>);
method public void setFullscreenButtonClickListener(@Nullable
[Link]);
method public void setPlayer(@Nullable [Link]);
method public void setUseController(boolean);
}

public static interface [Link] {


method public void onVisibilityChanged(int);
}

public static interface [Link] {


method public void onFullscreenButtonClick(boolean);
}

You might also like