// Signature format: 2.0 package androidx.media3.common { 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 @androidx.media3.common.AdOverlayInfo.Purpose public final int purpose; field @Nullable public final String reasonDetail; field public final android.view.View view; } public static final class AdOverlayInfo.Builder { ctor public AdOverlayInfo.Builder(android.view.View, @androidx.media3.common.AdOverlayInfo.Purpose int); method public androidx.media3.common.AdOverlayInfo build(); method public androidx.media3.common.AdOverlayInfo.Builder setDetailedReason(@Nullable String); } @IntDef({androidx.media3.common.AdOverlayInfo.PURPOSE_CONTROLS, androidx.media3.common.AdOverlayInfo.PURPOSE_CLOSE_AD, androidx.media3.common.AdOverlayInfo.PURPOSE_OTHER, androidx.media3.common.AdOverlayInfo.PURPOSE_NOT_VISIBLE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface AdOverlayInfo.Purpose { } public interface AdViewProvider { method public default java.util.List getAdOverlayInfos(); method @Nullable public android.view.ViewGroup getAdViewGroup(); } public final class AudioAttributes { method @RequiresApi(21) public androidx.media3.common.AudioAttributes.AudioAttributesV21 getAudioAttributesV21(); field public static final androidx.media3.common.AudioAttributes DEFAULT; field @androidx.media3.common.C.AudioAllowedCapturePolicy public final int allowedCapturePolicy; field @androidx.media3.common.C.AudioContentType public final int contentType; field @androidx.media3.common.C.AudioFlags public final int flags; field @androidx.media3.common.C.SpatializationBehavior public final int spatializationBehavior; field @androidx.media3.common.C.AudioUsage public final int usage; } @RequiresApi(21) public static final class AudioAttributes.AudioAttributesV21 { field public final android.media.AudioAttributes audioAttributes; } public static final class AudioAttributes.Builder { ctor public AudioAttributes.Builder(); method public androidx.media3.common.AudioAttributes build(); method public androidx.media3.common.AudioAttributes.Builder setAllowedCapturePolicy(@androidx.media3.common.C.AudioAllowedCapturePolicy int); method public androidx.media3.common.AudioAttributes.Builder setContentType(@androidx.media3.common.C.AudioContentType int); method public androidx.media3.common.AudioAttributes.Builder setFlags(@androidx.media3.common.C.AudioFlags int); method public androidx.media3.common.AudioAttributes.Builder setSpatializationBehavior(@androidx.media3.common.C.SpatializationBehavior int); method public androidx.media3.common.AudioAttributes.Builder setUsage(@androidx.media3.common.C.AudioUsage 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 java.util.UUID CLEARKEY_UUID; field public static final java.util.UUID 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 java.util.UUID 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_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 java.util.UUID 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 java.util.UUID WIDEVINE_UUID; } @IntDef({androidx.media3.common.C.ALLOW_CAPTURE_BY_ALL, androidx.media3.common.C.ALLOW_CAPTURE_BY_NONE, androidx.media3.common.C.ALLOW_CAPTURE_BY_SYSTEM}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.AudioAllowedCapturePolicy { } @IntDef({androidx.media3.common.C.AUDIO_CONTENT_TYPE_MOVIE, androidx.media3.common.C.AUDIO_CONTENT_TYPE_MUSIC, androidx.media3.common.C.AUDIO_CONTENT_TYPE_SONIFICATION, androidx.media3.common.C.AUDIO_CONTENT_TYPE_SPEECH, androidx.media3.common.C.AUDIO_CONTENT_TYPE_UNKNOWN}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.AudioContentType { } @IntDef(flag=true, value={androidx.media3.common.C.FLAG_AUDIBILITY_ENFORCED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.AudioFlags { } @IntDef({androidx.media3.common.C.USAGE_ALARM, androidx.media3.common.C.USAGE_ASSISTANCE_ACCESSIBILITY, androidx.media3.common.C.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, androidx.media3.common.C.USAGE_ASSISTANCE_SONIFICATION, androidx.media3.common.C.USAGE_ASSISTANT, androidx.media3.common.C.USAGE_GAME, androidx.media3.common.C.USAGE_MEDIA, androidx.media3.common.C.USAGE_NOTIFICATION, androidx.media3.common.C.USAGE_NOTIFICATION_COMMUNICATION_DELAYED, androidx.media3.common.C.USAGE_NOTIFICATION_COMMUNICATION_INSTANT, androidx.media3.common.C.USAGE_NOTIFICATION_COMMUNICATION_REQUEST, androidx.media3.common.C.USAGE_NOTIFICATION_EVENT, androidx.media3.common.C.USAGE_NOTIFICATION_RINGTONE, androidx.media3.common.C.USAGE_UNKNOWN, androidx.media3.common.C.USAGE_VOICE_COMMUNICATION, androidx.media3.common.C.USAGE_VOICE_COMMUNICATION_SIGNALLING}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.AudioUsage { } @IntDef({androidx.media3.common.C.CONTENT_TYPE_DASH, androidx.media3.common.C.CONTENT_TYPE_SS, androidx.media3.common.C.CONTENT_TYPE_HLS, androidx.media3.common.C.CONTENT_TYPE_RTSP, androidx.media3.common.C.CONTENT_TYPE_OTHER}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.ContentType { } @IntDef(open=true, value={androidx.media3.common.C.CRYPTO_TYPE_UNSUPPORTED, androidx.media3.common.C.CRYPTO_TYPE_NONE, androidx.media3.common.C.CRYPTO_TYPE_FRAMEWORK}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface C.CryptoType { } @IntDef(flag=true, value={androidx.media3.common.C.ROLE_FLAG_MAIN, androidx.media3.common.C.ROLE_FLAG_ALTERNATE, androidx.media3.common.C.ROLE_FLAG_SUPPLEMENTARY, androidx.media3.common.C.ROLE_FLAG_COMMENTARY, androidx.media3.common.C.ROLE_FLAG_DUB, androidx.media3.common.C.ROLE_FLAG_EMERGENCY, androidx.media3.common.C.ROLE_FLAG_CAPTION, androidx.media3.common.C.ROLE_FLAG_SUBTITLE, androidx.media3.common.C.ROLE_FLAG_SIGN, androidx.media3.common.C.ROLE_FLAG_DESCRIBES_VIDEO, androidx.media3.common.C.ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND, androidx.media3.common.C.ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY, androidx.media3.common.C.ROLE_FLAG_TRANSCRIBES_DIALOG, androidx.media3.common.C.ROLE_FLAG_EASY_TO_READ, androidx.media3.common.C.ROLE_FLAG_TRICK_PLAY}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.RoleFlags { } @IntDef(flag=true, value={androidx.media3.common.C.SELECTION_FLAG_DEFAULT, androidx.media3.common.C.SELECTION_FLAG_FORCED, androidx.media3.common.C.SELECTION_FLAG_AUTOSELECT}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.SelectionFlags { } @IntDef({androidx.media3.common.C.SPATIALIZATION_BEHAVIOR_AUTO, androidx.media3.common.C.SPATIALIZATION_BEHAVIOR_NEVER}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface C.SpatializationBehavior { } @IntDef(open=true, value={androidx.media3.common.C.TRACK_TYPE_UNKNOWN, androidx.media3.common.C.TRACK_TYPE_DEFAULT, androidx.media3.common.C.TRACK_TYPE_AUDIO, androidx.media3.common.C.TRACK_TYPE_VIDEO, androidx.media3.common.C.TRACK_TYPE_TEXT, androidx.media3.common.C.TRACK_TYPE_IMAGE, androidx.media3.common.C.TRACK_TYPE_METADATA, androidx.media3.common.C.TRACK_TYPE_CAMERA_MOTION, androidx.media3.common.C.TRACK_TYPE_NONE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface C.TrackType { } @IntDef(flag=true, value={androidx.media3.common.C.VOLUME_FLAG_SHOW_UI, androidx.media3.common.C.VOLUME_FLAG_ALLOW_RINGER_MODES, androidx.media3.common.C.VOLUME_FLAG_PLAY_SOUND, androidx.media3.common.C.VOLUME_FLAG_REMOVE_SOUND_AND_VIBRATE, androidx.media3.common.C.VOLUME_FLAG_VIBRATE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.VolumeFlags { } @IntDef({androidx.media3.common.C.WAKE_MODE_NONE, androidx.media3.common.C.WAKE_MODE_LOCAL, androidx.media3.common.C.WAKE_MODE_NETWORK}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.WakeMode { } 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 androidx.media3.common.DeviceInfo UNKNOWN; field @IntRange(from=0) public final int maxVolume; field @IntRange(from=0) public final int minVolume; field @androidx.media3.common.DeviceInfo.PlaybackType public final int playbackType; field @Nullable public final String routingControllerId; } public static final class DeviceInfo.Builder { ctor public DeviceInfo.Builder(@androidx.media3.common.DeviceInfo.PlaybackType int); method public androidx.media3.common.DeviceInfo build(); method public androidx.media3.common.DeviceInfo.Builder setMaxVolume(@IntRange(from=0) int); method public androidx.media3.common.DeviceInfo.Builder setMinVolume(@IntRange(from=0) int); method public androidx.media3.common.DeviceInfo.Builder setRoutingControllerId(@Nullable String); } @IntDef({androidx.media3.common.DeviceInfo.PLAYBACK_TYPE_LOCAL, androidx.media3.common.DeviceInfo.PLAYBACK_TYPE_REMOTE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface DeviceInfo.PlaybackType { } public interface ErrorMessageProvider { method public android.util.Pair 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 @androidx.media3.common.C.RoleFlags public final int roleFlags; field @Nullable public final String sampleMimeType; field public final int sampleRate; field @androidx.media3.common.C.SelectionFlags public final int selectionFlags; field public final int width; } public final class HeartRating extends androidx.media3.common.Rating { ctor public HeartRating(); ctor public HeartRating(boolean); method public boolean isHeart(); method public boolean isRated(); } public final class MediaItem { method public androidx.media3.common.MediaItem.Builder buildUpon(); method public static androidx.media3.common.MediaItem fromUri(String); method public static androidx.media3.common.MediaItem fromUri(android.net.Uri); field public static final String DEFAULT_MEDIA_ID = ""; field public static final androidx.media3.common.MediaItem EMPTY; field public final androidx.media3.common.MediaItem.ClippingConfiguration clippingConfiguration; field public final androidx.media3.common.MediaItem.LiveConfiguration liveConfiguration; field @Nullable public final androidx.media3.common.MediaItem.LocalConfiguration localConfiguration; field public final String mediaId; field public final androidx.media3.common.MediaMetadata mediaMetadata; field public final androidx.media3.common.MediaItem.RequestMetadata requestMetadata; } public static final class MediaItem.AdsConfiguration { method public androidx.media3.common.MediaItem.AdsConfiguration.Builder buildUpon(); field public final android.net.Uri adTagUri; field @Nullable public final Object adsId; } public static final class MediaItem.AdsConfiguration.Builder { ctor public MediaItem.AdsConfiguration.Builder(android.net.Uri); method public androidx.media3.common.MediaItem.AdsConfiguration build(); method public androidx.media3.common.MediaItem.AdsConfiguration.Builder setAdTagUri(android.net.Uri); method public androidx.media3.common.MediaItem.AdsConfiguration.Builder setAdsId(@Nullable Object); } public static final class MediaItem.Builder { ctor public MediaItem.Builder(); method public androidx.media3.common.MediaItem build(); method public androidx.media3.common.MediaItem.Builder setAdsConfiguration(@Nullable androidx.media3.common.MediaItem.AdsConfiguration); method public androidx.media3.common.MediaItem.Builder setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration); method public androidx.media3.common.MediaItem.Builder setDrmConfiguration(@Nullable androidx.media3.common.MediaItem.DrmConfiguration); method public androidx.media3.common.MediaItem.Builder setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration); method public androidx.media3.common.MediaItem.Builder setMediaId(String); method public androidx.media3.common.MediaItem.Builder setMediaMetadata(androidx.media3.common.MediaMetadata); method public androidx.media3.common.MediaItem.Builder setMimeType(@Nullable String); method public androidx.media3.common.MediaItem.Builder setRequestMetadata(androidx.media3.common.MediaItem.RequestMetadata); method public androidx.media3.common.MediaItem.Builder setSubtitleConfigurations(java.util.List); method public androidx.media3.common.MediaItem.Builder setTag(@Nullable Object); method public androidx.media3.common.MediaItem.Builder setUri(@Nullable String); method public androidx.media3.common.MediaItem.Builder setUri(@Nullable android.net.Uri); } public static class MediaItem.ClippingConfiguration { method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder buildUpon(); field public static final androidx.media3.common.MediaItem.ClippingConfiguration 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 MediaItem.ClippingConfiguration.Builder { ctor public MediaItem.ClippingConfiguration.Builder(); method public androidx.media3.common.MediaItem.ClippingConfiguration build(); method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setEndPositionMs(long); method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setRelativeToDefaultPosition(boolean); method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setRelativeToLiveWindow(boolean); method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setStartPositionMs(@IntRange(from=0) long); method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setStartsAtKeyFrame(boolean); } public static final class MediaItem.DrmConfiguration { method public androidx.media3.common.MediaItem.DrmConfiguration.Builder buildUpon(); method @Nullable public byte[] getKeySetId(); field public final boolean forceDefaultLicenseUri; field public final com.google.common.collect.ImmutableList forcedSessionTrackTypes; field public final com.google.common.collect.ImmutableMap licenseRequestHeaders; field @Nullable public final android.net.Uri licenseUri; field public final boolean multiSession; field public final boolean playClearContentWithoutKey; field public final java.util.UUID scheme; } public static final class MediaItem.DrmConfiguration.Builder { ctor public MediaItem.DrmConfiguration.Builder(java.util.UUID); method public androidx.media3.common.MediaItem.DrmConfiguration build(); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setForceDefaultLicenseUri(boolean); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setForceSessionsForAudioAndVideoTracks(boolean); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setForcedSessionTrackTypes(java.util.List); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setKeySetId(@Nullable byte[]); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setLicenseRequestHeaders(java.util.Map); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setLicenseUri(@Nullable android.net.Uri); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setLicenseUri(@Nullable String); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setMultiSession(boolean); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setPlayClearContentWithoutKey(boolean); method public androidx.media3.common.MediaItem.DrmConfiguration.Builder setScheme(java.util.UUID); } public static final class MediaItem.LiveConfiguration { method public androidx.media3.common.MediaItem.LiveConfiguration.Builder buildUpon(); field public static final androidx.media3.common.MediaItem.LiveConfiguration 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 MediaItem.LiveConfiguration.Builder { ctor public MediaItem.LiveConfiguration.Builder(); method public androidx.media3.common.MediaItem.LiveConfiguration build(); method public androidx.media3.common.MediaItem.LiveConfiguration.Builder setMaxOffsetMs(long); method public androidx.media3.common.MediaItem.LiveConfiguration.Builder setMaxPlaybackSpeed(float); method public androidx.media3.common.MediaItem.LiveConfiguration.Builder setMinOffsetMs(long); method public androidx.media3.common.MediaItem.LiveConfiguration.Builder setMinPlaybackSpeed(float); method public androidx.media3.common.MediaItem.LiveConfiguration.Builder setTargetOffsetMs(long); } public static final class MediaItem.LocalConfiguration { field @Nullable public final androidx.media3.common.MediaItem.AdsConfiguration adsConfiguration; field @Nullable public final androidx.media3.common.MediaItem.DrmConfiguration drmConfiguration; field @Nullable public final String mimeType; field public final com.google.common.collect.ImmutableList subtitleConfigurations; field @Nullable public final Object tag; field public final android.net.Uri uri; } public static final class MediaItem.RequestMetadata { method public androidx.media3.common.MediaItem.RequestMetadata.Builder buildUpon(); field public static final androidx.media3.common.MediaItem.RequestMetadata EMPTY; field @Nullable public final android.os.Bundle extras; field @Nullable public final android.net.Uri mediaUri; field @Nullable public final String searchQuery; } public static final class MediaItem.RequestMetadata.Builder { ctor public MediaItem.RequestMetadata.Builder(); method public androidx.media3.common.MediaItem.RequestMetadata build(); method public androidx.media3.common.MediaItem.RequestMetadata.Builder setExtras(@Nullable android.os.Bundle); method public androidx.media3.common.MediaItem.RequestMetadata.Builder setMediaUri(@Nullable android.net.Uri); method public androidx.media3.common.MediaItem.RequestMetadata.Builder setSearchQuery(@Nullable String); } public static class MediaItem.SubtitleConfiguration { method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder 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 @androidx.media3.common.C.RoleFlags public final int roleFlags; field @androidx.media3.common.C.SelectionFlags public final int selectionFlags; field public final android.net.Uri uri; } public static final class MediaItem.SubtitleConfiguration.Builder { ctor public MediaItem.SubtitleConfiguration.Builder(android.net.Uri); method public androidx.media3.common.MediaItem.SubtitleConfiguration build(); method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setId(@Nullable String); method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setLabel(@Nullable String); method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setLanguage(@Nullable String); method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setMimeType(@Nullable String); method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setRoleFlags(@androidx.media3.common.C.RoleFlags int); method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setSelectionFlags(@androidx.media3.common.C.SelectionFlags int); method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setUri(android.net.Uri); } public final class MediaMetadata { method public androidx.media3.common.MediaMetadata.Builder buildUpon(); field public static final androidx.media3.common.MediaMetadata 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 @androidx.media3.common.MediaMetadata.PictureType public final Integer artworkDataType; field @Nullable public final android.net.Uri 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 android.os.Bundle extras; field @Deprecated @Nullable @androidx.media3.common.MediaMetadata.FolderType public final Integer folderType; field @Nullable public final CharSequence genre; field @Nullable public final Boolean isBrowsable; field @Nullable public final Boolean isPlayable; field @Nullable @androidx.media3.common.MediaMetadata.MediaType public final Integer mediaType; field @Nullable public final androidx.media3.common.Rating 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 androidx.media3.common.Rating userRating; field @Nullable public final CharSequence writer; } public static final class MediaMetadata.Builder { ctor public MediaMetadata.Builder(); method public androidx.media3.common.MediaMetadata build(); method public androidx.media3.common.MediaMetadata.Builder maybeSetArtworkData(byte[], @androidx.media3.common.MediaMetadata.PictureType int); method public androidx.media3.common.MediaMetadata.Builder setAlbumArtist(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setAlbumTitle(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setArtist(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setArtworkData(@Nullable byte[], @Nullable @androidx.media3.common.MediaMetadata.PictureType Integer); method public androidx.media3.common.MediaMetadata.Builder setArtworkUri(@Nullable android.net.Uri); method public androidx.media3.common.MediaMetadata.Builder setCompilation(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setComposer(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setConductor(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setDescription(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setDiscNumber(@Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setDisplayTitle(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setExtras(@Nullable android.os.Bundle); method @Deprecated public androidx.media3.common.MediaMetadata.Builder setFolderType(@Nullable @androidx.media3.common.MediaMetadata.FolderType Integer); method public androidx.media3.common.MediaMetadata.Builder setGenre(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setIsBrowsable(@Nullable Boolean); method public androidx.media3.common.MediaMetadata.Builder setIsPlayable(@Nullable Boolean); method public androidx.media3.common.MediaMetadata.Builder setMediaType(@Nullable @androidx.media3.common.MediaMetadata.MediaType Integer); method public androidx.media3.common.MediaMetadata.Builder setOverallRating(@Nullable androidx.media3.common.Rating); method public androidx.media3.common.MediaMetadata.Builder setRecordingDay(@IntRange(from=1, to=31) @Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setRecordingMonth(@IntRange(from=1, to=12) @Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setRecordingYear(@Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setReleaseDay(@IntRange(from=1, to=31) @Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setReleaseMonth(@IntRange(from=1, to=12) @Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setReleaseYear(@Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setStation(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setSubtitle(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setTitle(@Nullable CharSequence); method public androidx.media3.common.MediaMetadata.Builder setTotalDiscCount(@Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setTotalTrackCount(@Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setTrackNumber(@Nullable Integer); method public androidx.media3.common.MediaMetadata.Builder setUserRating(@Nullable androidx.media3.common.Rating); method public androidx.media3.common.MediaMetadata.Builder setWriter(@Nullable CharSequence); } @Deprecated @IntDef({androidx.media3.common.MediaMetadata.FOLDER_TYPE_NONE, androidx.media3.common.MediaMetadata.FOLDER_TYPE_MIXED, androidx.media3.common.MediaMetadata.FOLDER_TYPE_TITLES, androidx.media3.common.MediaMetadata.FOLDER_TYPE_ALBUMS, androidx.media3.common.MediaMetadata.FOLDER_TYPE_ARTISTS, androidx.media3.common.MediaMetadata.FOLDER_TYPE_GENRES, androidx.media3.common.MediaMetadata.FOLDER_TYPE_PLAYLISTS, androidx.media3.common.MediaMetadata.FOLDER_TYPE_YEARS}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface MediaMetadata.FolderType { } @IntDef({androidx.media3.common.MediaMetadata.MEDIA_TYPE_MIXED, androidx.media3.common.MediaMetadata.MEDIA_TYPE_MUSIC, androidx.media3.common.MediaMetadata.MEDIA_TYPE_AUDIO_BOOK_CHAPTER, androidx.media3.common.MediaMetadata.MEDIA_TYPE_PODCAST_EPISODE, androidx.media3.common.MediaMetadata.MEDIA_TYPE_RADIO_STATION, androidx.media3.common.MediaMetadata.MEDIA_TYPE_NEWS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_VIDEO, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TRAILER, androidx.media3.common.MediaMetadata.MEDIA_TYPE_MOVIE, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TV_SHOW, androidx.media3.common.MediaMetadata.MEDIA_TYPE_ALBUM, androidx.media3.common.MediaMetadata.MEDIA_TYPE_ARTIST, androidx.media3.common.MediaMetadata.MEDIA_TYPE_GENRE, androidx.media3.common.MediaMetadata.MEDIA_TYPE_PLAYLIST, androidx.media3.common.MediaMetadata.MEDIA_TYPE_YEAR, androidx.media3.common.MediaMetadata.MEDIA_TYPE_AUDIO_BOOK, androidx.media3.common.MediaMetadata.MEDIA_TYPE_PODCAST, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TV_CHANNEL, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TV_SERIES, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TV_SEASON, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_MIXED, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_ALBUMS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_ARTISTS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_GENRES, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_PLAYLISTS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_YEARS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_AUDIO_BOOKS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_PODCASTS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_TV_CHANNELS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_TV_SERIES, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_TV_SHOWS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_RADIO_STATIONS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_NEWS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_VIDEOS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_TRAILERS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_MOVIES}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface MediaMetadata.MediaType { } @IntDef({androidx.media3.common.MediaMetadata.PICTURE_TYPE_OTHER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_FILE_ICON, androidx.media3.common.MediaMetadata.PICTURE_TYPE_FILE_ICON_OTHER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_FRONT_COVER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_BACK_COVER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_LEAFLET_PAGE, androidx.media3.common.MediaMetadata.PICTURE_TYPE_MEDIA, androidx.media3.common.MediaMetadata.PICTURE_TYPE_LEAD_ARTIST_PERFORMER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_ARTIST_PERFORMER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_CONDUCTOR, androidx.media3.common.MediaMetadata.PICTURE_TYPE_BAND_ORCHESTRA, androidx.media3.common.MediaMetadata.PICTURE_TYPE_COMPOSER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_LYRICIST, androidx.media3.common.MediaMetadata.PICTURE_TYPE_RECORDING_LOCATION, androidx.media3.common.MediaMetadata.PICTURE_TYPE_DURING_RECORDING, androidx.media3.common.MediaMetadata.PICTURE_TYPE_DURING_PERFORMANCE, androidx.media3.common.MediaMetadata.PICTURE_TYPE_MOVIE_VIDEO_SCREEN_CAPTURE, androidx.media3.common.MediaMetadata.PICTURE_TYPE_A_BRIGHT_COLORED_FISH, androidx.media3.common.MediaMetadata.PICTURE_TYPE_ILLUSTRATION, androidx.media3.common.MediaMetadata.PICTURE_TYPE_BAND_ARTIST_LOGO, androidx.media3.common.MediaMetadata.PICTURE_TYPE_PUBLISHER_STUDIO_LOGO}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface MediaMetadata.PictureType { } public final class MimeTypes { field public static final String APPLICATION_AIT = "application/vnd.dvb.ait"; 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_SS = "application/vnd.ms-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/vnd.dts"; field public static final String AUDIO_DTS_EXPRESS = "audio/vnd.dts.hd;profile=lbr"; field public static final String AUDIO_DTS_HD = "audio/vnd.dts.hd"; 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 androidx.media3.common.Rating { ctor public PercentageRating(); ctor public PercentageRating(@FloatRange(from=0, to=100) float); method public float getPercent(); method public boolean isRated(); } public class PlaybackException extends java.lang.Exception { method @CallSuper public boolean errorInfoEquals(@Nullable androidx.media3.common.PlaybackException); method public static String getErrorCodeName(@androidx.media3.common.PlaybackException.ErrorCode int); method public final String getErrorCodeName(); 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_WRITE_FAILED = 5002; // 0x138a field public static final int ERROR_CODE_BEHIND_LIVE_WINDOW = 1002; // 0x3ea 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_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_FAILED_RUNTIME_CHECK = 1004; // 0x3ec 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_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_REMOTE_ERROR = 1001; // 0x3e9 field public static final int ERROR_CODE_TIMEOUT = 1003; // 0x3eb field public static final int ERROR_CODE_UNSPECIFIED = 1000; // 0x3e8 field @androidx.media3.common.PlaybackException.ErrorCode public final int errorCode; field public final long timestampMs; } @IntDef(open=true, value={androidx.media3.common.PlaybackException.ERROR_CODE_UNSPECIFIED, androidx.media3.common.PlaybackException.ERROR_CODE_REMOTE_ERROR, androidx.media3.common.PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW, androidx.media3.common.PlaybackException.ERROR_CODE_TIMEOUT, androidx.media3.common.PlaybackException.ERROR_CODE_FAILED_RUNTIME_CHECK, androidx.media3.common.PlaybackException.ERROR_CODE_IO_UNSPECIFIED, androidx.media3.common.PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT, androidx.media3.common.PlaybackException.ERROR_CODE_IO_INVALID_HTTP_CONTENT_TYPE, androidx.media3.common.PlaybackException.ERROR_CODE_IO_BAD_HTTP_STATUS, androidx.media3.common.PlaybackException.ERROR_CODE_IO_FILE_NOT_FOUND, androidx.media3.common.PlaybackException.ERROR_CODE_IO_NO_PERMISSION, androidx.media3.common.PlaybackException.ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED, androidx.media3.common.PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE, androidx.media3.common.PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED, androidx.media3.common.PlaybackException.ERROR_CODE_PARSING_MANIFEST_MALFORMED, androidx.media3.common.PlaybackException.ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED, androidx.media3.common.PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED, androidx.media3.common.PlaybackException.ERROR_CODE_DECODER_INIT_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DECODER_QUERY_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DECODING_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DECODING_FORMAT_EXCEEDS_CAPABILITIES, androidx.media3.common.PlaybackException.ERROR_CODE_DECODING_FORMAT_UNSUPPORTED, androidx.media3.common.PlaybackException.ERROR_CODE_AUDIO_TRACK_INIT_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_AUDIO_TRACK_WRITE_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_UNSPECIFIED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_SCHEME_UNSUPPORTED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_PROVISIONING_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_CONTENT_ERROR, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_DISALLOWED_OPERATION, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_SYSTEM_ERROR, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_DEVICE_REVOKED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_LICENSE_EXPIRED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface PlaybackException.ErrorCode { } 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 androidx.media3.common.PlaybackParameters withSpeed(@FloatRange(from=0, fromInclusive=false) float); field public static final androidx.media3.common.PlaybackParameters DEFAULT; field public final float pitch; field public final float speed; } public interface Player { method public void addListener(androidx.media3.common.Player.Listener); method public void addMediaItem(androidx.media3.common.MediaItem); method public void addMediaItem(int, androidx.media3.common.MediaItem); method public void addMediaItems(java.util.List); method public void addMediaItems(int, java.util.List); method public boolean canAdvertiseSession(); method public void clearMediaItems(); method public void clearVideoSurface(); method public void clearVideoSurface(@Nullable android.view.Surface); method public void clearVideoSurfaceHolder(@Nullable android.view.SurfaceHolder); method public void clearVideoSurfaceView(@Nullable android.view.SurfaceView); method public void clearVideoTextureView(@Nullable android.view.TextureView); method @Deprecated public void decreaseDeviceVolume(); method public void decreaseDeviceVolume(@androidx.media3.common.C.VolumeFlags int); method public android.os.Looper getApplicationLooper(); method public androidx.media3.common.AudioAttributes getAudioAttributes(); method public androidx.media3.common.Player.Commands 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 androidx.media3.common.text.CueGroup getCurrentCues(); method public long getCurrentLiveOffset(); method @Nullable public androidx.media3.common.MediaItem getCurrentMediaItem(); method public int getCurrentMediaItemIndex(); method public int getCurrentPeriodIndex(); method public long getCurrentPosition(); method public androidx.media3.common.Timeline getCurrentTimeline(); method public androidx.media3.common.Tracks getCurrentTracks(); method public androidx.media3.common.DeviceInfo getDeviceInfo(); method @IntRange(from=0) public int getDeviceVolume(); method public long getDuration(); method public long getMaxSeekToPreviousPosition(); method public androidx.media3.common.MediaItem getMediaItemAt(int); method public int getMediaItemCount(); method public androidx.media3.common.MediaMetadata getMediaMetadata(); method public int getNextMediaItemIndex(); method public boolean getPlayWhenReady(); method public androidx.media3.common.PlaybackParameters getPlaybackParameters(); method @androidx.media3.common.Player.State public int getPlaybackState(); method @androidx.media3.common.Player.PlaybackSuppressionReason public int getPlaybackSuppressionReason(); method @Nullable public androidx.media3.common.PlaybackException getPlayerError(); method public androidx.media3.common.MediaMetadata getPlaylistMetadata(); method public int getPreviousMediaItemIndex(); method @androidx.media3.common.Player.RepeatMode public int getRepeatMode(); method public long getSeekBackIncrement(); method public long getSeekForwardIncrement(); method public boolean getShuffleModeEnabled(); method public long getTotalBufferedDuration(); method public androidx.media3.common.TrackSelectionParameters getTrackSelectionParameters(); method public androidx.media3.common.VideoSize 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(@androidx.media3.common.C.VolumeFlags int); method public boolean isCommandAvailable(@androidx.media3.common.Player.Command 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(androidx.media3.common.Player.Listener); method public void removeMediaItem(int); method public void removeMediaItems(int, int); method public void replaceMediaItem(int, androidx.media3.common.MediaItem); method public void replaceMediaItems(int, int, java.util.List); method public void seekBack(); method public void seekForward(); method public void seekTo(long); method public void seekTo(int, 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 @Deprecated public void setDeviceMuted(boolean); method public void setDeviceMuted(boolean, @androidx.media3.common.C.VolumeFlags int); method @Deprecated public void setDeviceVolume(@IntRange(from=0) int); method public void setDeviceVolume(@IntRange(from=0) int, int); method public void setMediaItem(androidx.media3.common.MediaItem); method public void setMediaItem(androidx.media3.common.MediaItem, long); method public void setMediaItem(androidx.media3.common.MediaItem, boolean); method public void setMediaItems(java.util.List); method public void setMediaItems(java.util.List, boolean); method public void setMediaItems(java.util.List, int, long); method public void setPlayWhenReady(boolean); method public void setPlaybackParameters(androidx.media3.common.PlaybackParameters); method public void setPlaybackSpeed(@FloatRange(from=0, fromInclusive=false) float); method public void setPlaylistMetadata(androidx.media3.common.MediaMetadata); method public void setRepeatMode(@androidx.media3.common.Player.RepeatMode int); method public void setShuffleModeEnabled(boolean); method public void setTrackSelectionParameters(androidx.media3.common.TrackSelectionParameters); method public void setVideoSurface(@Nullable android.view.Surface); method public void setVideoSurfaceHolder(@Nullable android.view.SurfaceHolder); method public void setVideoSurfaceView(@Nullable android.view.SurfaceView); method public void setVideoTextureView(@Nullable android.view.TextureView); 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 @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_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({androidx.media3.common.Player.COMMAND_INVALID, androidx.media3.common.Player.COMMAND_PLAY_PAUSE, androidx.media3.common.Player.COMMAND_PREPARE, androidx.media3.common.Player.COMMAND_STOP, androidx.media3.common.Player.COMMAND_SEEK_TO_DEFAULT_POSITION, androidx.media3.common.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT, androidx.media3.common.Player.COMMAND_SEEK_TO_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_BACK, androidx.media3.common.Player.COMMAND_SEEK_FORWARD, androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH, androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE, androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE, androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_GET_TIMELINE, androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_GET_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS, androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES, androidx.media3.common.Player.COMMAND_GET_VOLUME, androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS, androidx.media3.common.Player.COMMAND_SET_VIDEO_SURFACE, androidx.media3.common.Player.COMMAND_GET_TEXT, androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS, androidx.media3.common.Player.COMMAND_GET_TRACKS, androidx.media3.common.Player.COMMAND_RELEASE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Command { } public static final class Player.Commands { method public boolean contains(@androidx.media3.common.Player.Command int); method public boolean containsAny(@androidx.media3.common.Player.Command int...); method @androidx.media3.common.Player.Command public int get(int); method public int size(); field public static final androidx.media3.common.Player.Commands EMPTY; } @IntDef({androidx.media3.common.Player.DISCONTINUITY_REASON_AUTO_TRANSITION, androidx.media3.common.Player.DISCONTINUITY_REASON_SEEK, androidx.media3.common.Player.DISCONTINUITY_REASON_SEEK_ADJUSTMENT, androidx.media3.common.Player.DISCONTINUITY_REASON_SKIP, androidx.media3.common.Player.DISCONTINUITY_REASON_REMOVE, androidx.media3.common.Player.DISCONTINUITY_REASON_INTERNAL}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.DiscontinuityReason { } @IntDef({androidx.media3.common.Player.EVENT_TIMELINE_CHANGED, androidx.media3.common.Player.EVENT_MEDIA_ITEM_TRANSITION, androidx.media3.common.Player.EVENT_TRACKS_CHANGED, androidx.media3.common.Player.EVENT_IS_LOADING_CHANGED, androidx.media3.common.Player.EVENT_PLAYBACK_STATE_CHANGED, androidx.media3.common.Player.EVENT_PLAY_WHEN_READY_CHANGED, androidx.media3.common.Player.EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED, androidx.media3.common.Player.EVENT_IS_PLAYING_CHANGED, androidx.media3.common.Player.EVENT_REPEAT_MODE_CHANGED, androidx.media3.common.Player.EVENT_SHUFFLE_MODE_ENABLED_CHANGED, androidx.media3.common.Player.EVENT_PLAYER_ERROR, androidx.media3.common.Player.EVENT_POSITION_DISCONTINUITY, androidx.media3.common.Player.EVENT_PLAYBACK_PARAMETERS_CHANGED, androidx.media3.common.Player.EVENT_AVAILABLE_COMMANDS_CHANGED, androidx.media3.common.Player.EVENT_MEDIA_METADATA_CHANGED, androidx.media3.common.Player.EVENT_PLAYLIST_METADATA_CHANGED, androidx.media3.common.Player.EVENT_SEEK_BACK_INCREMENT_CHANGED, androidx.media3.common.Player.EVENT_SEEK_FORWARD_INCREMENT_CHANGED, androidx.media3.common.Player.EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED, androidx.media3.common.Player.EVENT_TRACK_SELECTION_PARAMETERS_CHANGED, androidx.media3.common.Player.EVENT_AUDIO_ATTRIBUTES_CHANGED, androidx.media3.common.Player.EVENT_AUDIO_SESSION_ID, androidx.media3.common.Player.EVENT_VOLUME_CHANGED, androidx.media3.common.Player.EVENT_SKIP_SILENCE_ENABLED_CHANGED, androidx.media3.common.Player.EVENT_SURFACE_SIZE_CHANGED, androidx.media3.common.Player.EVENT_VIDEO_SIZE_CHANGED, androidx.media3.common.Player.EVENT_RENDERED_FIRST_FRAME, androidx.media3.common.Player.EVENT_CUES, androidx.media3.common.Player.EVENT_METADATA, androidx.media3.common.Player.EVENT_DEVICE_INFO_CHANGED, androidx.media3.common.Player.EVENT_DEVICE_VOLUME_CHANGED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Event { } public static final class Player.Events { method public boolean contains(@androidx.media3.common.Player.Event int); method public boolean containsAny(@androidx.media3.common.Player.Event int...); method @androidx.media3.common.Player.Event public int get(int); method public int size(); } public static interface Player.Listener { method public default void onAudioAttributesChanged(androidx.media3.common.AudioAttributes); method public default void onAvailableCommandsChanged(androidx.media3.common.Player.Commands); method public default void onCues(androidx.media3.common.text.CueGroup); method public default void onDeviceInfoChanged(androidx.media3.common.DeviceInfo); method public default void onDeviceVolumeChanged(int, boolean); method public default void onEvents(androidx.media3.common.Player, androidx.media3.common.Player.Events); method public default void onIsLoadingChanged(boolean); method public default void onIsPlayingChanged(boolean); method public default void onMaxSeekToPreviousPositionChanged(long); method public default void onMediaItemTransition(@Nullable androidx.media3.common.MediaItem, @androidx.media3.common.Player.MediaItemTransitionReason int); method public default void onMediaMetadataChanged(androidx.media3.common.MediaMetadata); method public default void onPlayWhenReadyChanged(boolean, @androidx.media3.common.Player.PlayWhenReadyChangeReason int); method public default void onPlaybackParametersChanged(androidx.media3.common.PlaybackParameters); method public default void onPlaybackStateChanged(@androidx.media3.common.Player.State int); method public default void onPlaybackSuppressionReasonChanged(@androidx.media3.common.Player.PlaybackSuppressionReason int); method public default void onPlayerError(androidx.media3.common.PlaybackException); method public default void onPlayerErrorChanged(@Nullable androidx.media3.common.PlaybackException); method public default void onPlaylistMetadataChanged(androidx.media3.common.MediaMetadata); method public default void onPositionDiscontinuity(androidx.media3.common.Player.PositionInfo, androidx.media3.common.Player.PositionInfo, @androidx.media3.common.Player.DiscontinuityReason int); method public default void onRenderedFirstFrame(); method public default void onRepeatModeChanged(@androidx.media3.common.Player.RepeatMode 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(androidx.media3.common.Timeline, @androidx.media3.common.Player.TimelineChangeReason int); method public default void onTrackSelectionParametersChanged(androidx.media3.common.TrackSelectionParameters); method public default void onTracksChanged(androidx.media3.common.Tracks); method public default void onVideoSizeChanged(androidx.media3.common.VideoSize); method public default void onVolumeChanged(float); } @IntDef({androidx.media3.common.Player.MEDIA_ITEM_TRANSITION_REASON_REPEAT, androidx.media3.common.Player.MEDIA_ITEM_TRANSITION_REASON_AUTO, androidx.media3.common.Player.MEDIA_ITEM_TRANSITION_REASON_SEEK, androidx.media3.common.Player.MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.MediaItemTransitionReason { } @IntDef({androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_REMOTE, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_SUPPRESSED_TOO_LONG}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.PlayWhenReadyChangeReason { } @IntDef({androidx.media3.common.Player.PLAYBACK_SUPPRESSION_REASON_NONE, androidx.media3.common.Player.PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS, androidx.media3.common.Player.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_ROUTE, androidx.media3.common.Player.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.PlaybackSuppressionReason { } public static final class Player.PositionInfo { 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({androidx.media3.common.Player.REPEAT_MODE_OFF, androidx.media3.common.Player.REPEAT_MODE_ONE, androidx.media3.common.Player.REPEAT_MODE_ALL}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.RepeatMode { } @IntDef({androidx.media3.common.Player.STATE_IDLE, androidx.media3.common.Player.STATE_BUFFERING, androidx.media3.common.Player.STATE_READY, androidx.media3.common.Player.STATE_ENDED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.State { } @IntDef({androidx.media3.common.Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED, androidx.media3.common.Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.TimelineChangeReason { } public abstract class Rating { method public abstract boolean isRated(); } public final class StarRating extends androidx.media3.common.Rating { 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 androidx.media3.common.Rating { 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, androidx.media3.common.Timeline.Period, androidx.media3.common.Timeline.Window, @androidx.media3.common.Player.RepeatMode int, boolean); method public int getNextWindowIndex(int, @androidx.media3.common.Player.RepeatMode int, boolean); method public final androidx.media3.common.Timeline.Period getPeriod(int, androidx.media3.common.Timeline.Period); method public abstract androidx.media3.common.Timeline.Period getPeriod(int, androidx.media3.common.Timeline.Period, boolean); method public androidx.media3.common.Timeline.Period getPeriodByUid(Object, androidx.media3.common.Timeline.Period); method public abstract int getPeriodCount(); method public final android.util.Pair getPeriodPositionUs(androidx.media3.common.Timeline.Window, androidx.media3.common.Timeline.Period, int, long); method @Nullable public final android.util.Pair getPeriodPositionUs(androidx.media3.common.Timeline.Window, androidx.media3.common.Timeline.Period, int, long, long); method public int getPreviousWindowIndex(int, @androidx.media3.common.Player.RepeatMode int, boolean); method public abstract Object getUidOfPeriod(int); method public final androidx.media3.common.Timeline.Window getWindow(int, androidx.media3.common.Timeline.Window); method public abstract androidx.media3.common.Timeline.Window getWindow(int, androidx.media3.common.Timeline.Window, long); method public abstract int getWindowCount(); method public final boolean isEmpty(); method public final boolean isLastPeriod(int, androidx.media3.common.Timeline.Period, androidx.media3.common.Timeline.Window, @androidx.media3.common.Player.RepeatMode int, boolean); field public static final androidx.media3.common.Timeline EMPTY; } public static final class Timeline.Period { ctor public Timeline.Period(); 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 Timeline.Window { ctor public Timeline.Window(); 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 androidx.media3.common.MediaItem.LiveConfiguration liveConfiguration; field @Nullable public Object manifest; field public androidx.media3.common.MediaItem mediaItem; field public long presentationStartTimeMs; field public Object uid; field public long windowStartTimeMs; } public final class TrackGroup { } public final class TrackSelectionOverride { ctor public TrackSelectionOverride(androidx.media3.common.TrackGroup, int); ctor public TrackSelectionOverride(androidx.media3.common.TrackGroup, java.util.List); method @androidx.media3.common.C.TrackType public int getType(); field public final androidx.media3.common.TrackGroup mediaTrackGroup; field public final com.google.common.collect.ImmutableList trackIndices; } public class TrackSelectionParameters { method public androidx.media3.common.TrackSelectionParameters.Builder buildUpon(); method public static androidx.media3.common.TrackSelectionParameters fromBundle(android.os.Bundle); method public static androidx.media3.common.TrackSelectionParameters getDefaults(android.content.Context); method public android.os.Bundle toBundle(); field public final int audioOffloadModePreference; field public final com.google.common.collect.ImmutableSet disabledTrackTypes; field public final boolean forceHighestSupportedBitrate; field public final boolean forceLowestBitrate; field @androidx.media3.common.C.SelectionFlags public final int ignoredTextSelectionFlags; field public final boolean isGaplessSupportRequired; field public final boolean isSpeedChangeSupportRequired; 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 com.google.common.collect.ImmutableMap overrides; field public final com.google.common.collect.ImmutableList preferredAudioLanguages; field public final com.google.common.collect.ImmutableList preferredAudioMimeTypes; field @androidx.media3.common.C.RoleFlags public final int preferredAudioRoleFlags; field public final com.google.common.collect.ImmutableList preferredTextLanguages; field @androidx.media3.common.C.RoleFlags public final int preferredTextRoleFlags; field public final com.google.common.collect.ImmutableList preferredVideoMimeTypes; field @androidx.media3.common.C.RoleFlags 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 TrackSelectionParameters.Builder { ctor public TrackSelectionParameters.Builder(android.content.Context); method public androidx.media3.common.TrackSelectionParameters.Builder addOverride(androidx.media3.common.TrackSelectionOverride); method public androidx.media3.common.TrackSelectionParameters build(); method public androidx.media3.common.TrackSelectionParameters.Builder clearOverride(androidx.media3.common.TrackGroup); method public androidx.media3.common.TrackSelectionParameters.Builder clearOverrides(); method public androidx.media3.common.TrackSelectionParameters.Builder clearOverridesOfType(@androidx.media3.common.C.TrackType int); method public androidx.media3.common.TrackSelectionParameters.Builder clearVideoSizeConstraints(); method public androidx.media3.common.TrackSelectionParameters.Builder clearViewportSizeConstraints(); method public androidx.media3.common.TrackSelectionParameters.Builder setAudioOffloadPreference(int, boolean, boolean); method public androidx.media3.common.TrackSelectionParameters.Builder setForceHighestSupportedBitrate(boolean); method public androidx.media3.common.TrackSelectionParameters.Builder setForceLowestBitrate(boolean); method public androidx.media3.common.TrackSelectionParameters.Builder setIgnoredTextSelectionFlags(@androidx.media3.common.C.SelectionFlags int); method public androidx.media3.common.TrackSelectionParameters.Builder setMaxAudioBitrate(int); method public androidx.media3.common.TrackSelectionParameters.Builder setMaxAudioChannelCount(int); method public androidx.media3.common.TrackSelectionParameters.Builder setMaxVideoBitrate(int); method public androidx.media3.common.TrackSelectionParameters.Builder setMaxVideoFrameRate(int); method public androidx.media3.common.TrackSelectionParameters.Builder setMaxVideoSize(int, int); method public androidx.media3.common.TrackSelectionParameters.Builder setMaxVideoSizeSd(); method public androidx.media3.common.TrackSelectionParameters.Builder setMinVideoBitrate(int); method public androidx.media3.common.TrackSelectionParameters.Builder setMinVideoFrameRate(int); method public androidx.media3.common.TrackSelectionParameters.Builder setMinVideoSize(int, int); method public androidx.media3.common.TrackSelectionParameters.Builder setOverrideForType(androidx.media3.common.TrackSelectionOverride); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredAudioLanguage(@Nullable String); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredAudioLanguages(java.lang.String...); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredAudioMimeType(@Nullable String); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredAudioMimeTypes(java.lang.String...); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredAudioRoleFlags(@androidx.media3.common.C.RoleFlags int); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredTextLanguage(@Nullable String); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(android.content.Context); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredTextLanguages(java.lang.String...); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredTextRoleFlags(@androidx.media3.common.C.RoleFlags int); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredVideoMimeType(@Nullable String); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredVideoMimeTypes(java.lang.String...); method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredVideoRoleFlags(@androidx.media3.common.C.RoleFlags int); method public androidx.media3.common.TrackSelectionParameters.Builder setSelectUndeterminedTextLanguage(boolean); method public androidx.media3.common.TrackSelectionParameters.Builder setTrackTypeDisabled(@androidx.media3.common.C.TrackType int, boolean); method public androidx.media3.common.TrackSelectionParameters.Builder setViewportSize(int, int, boolean); method public androidx.media3.common.TrackSelectionParameters.Builder setViewportSizeToPhysicalDisplaySize(android.content.Context, boolean); } public final class Tracks { method public boolean containsType(@androidx.media3.common.C.TrackType int); method public com.google.common.collect.ImmutableList getGroups(); method public boolean isEmpty(); method public boolean isTypeSelected(@androidx.media3.common.C.TrackType int); method public boolean isTypeSupported(@androidx.media3.common.C.TrackType int); method public boolean isTypeSupported(@androidx.media3.common.C.TrackType int, boolean); field public static final androidx.media3.common.Tracks EMPTY; } public static final class Tracks.Group { method public androidx.media3.common.TrackGroup getMediaTrackGroup(); method public androidx.media3.common.Format getTrackFormat(int); method @androidx.media3.common.C.TrackType 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 android.os.Bundle toBundle(); field public final int length; } public final class VideoSize { field public static final androidx.media3.common.VideoSize UNKNOWN; field @IntRange(from=0) public final int height; field @FloatRange(from=0, fromInclusive=false) public final float pixelWidthHeightRatio; field @IntRange(from=0, to=359) public final int unappliedRotationDegrees; field @IntRange(from=0) public final int width; } } package androidx.media3.common.text { 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 androidx.media3.common.text.Cue 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 android.graphics.Bitmap bitmap; field public final float bitmapHeight; field public final float line; field @androidx.media3.common.text.Cue.AnchorType public final int lineAnchor; field @androidx.media3.common.text.Cue.LineType public final int lineType; field @Nullable public final android.text.Layout.Alignment multiRowAlignment; field public final float position; field @androidx.media3.common.text.Cue.AnchorType public final int positionAnchor; field public final float shearDegrees; field public final float size; field @Nullable public final CharSequence text; field @Nullable public final android.text.Layout.Alignment textAlignment; field public final float textSize; field @androidx.media3.common.text.Cue.TextSizeType public final int textSizeType; field @androidx.media3.common.text.Cue.VerticalType public final int verticalType; field public final int windowColor; field public final boolean windowColorSet; } @IntDef({androidx.media3.common.text.Cue.TYPE_UNSET, androidx.media3.common.text.Cue.ANCHOR_TYPE_START, androidx.media3.common.text.Cue.ANCHOR_TYPE_MIDDLE, androidx.media3.common.text.Cue.ANCHOR_TYPE_END}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Cue.AnchorType { } @IntDef({androidx.media3.common.text.Cue.TYPE_UNSET, androidx.media3.common.text.Cue.LINE_TYPE_FRACTION, androidx.media3.common.text.Cue.LINE_TYPE_NUMBER}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Cue.LineType { } @IntDef({androidx.media3.common.text.Cue.TYPE_UNSET, androidx.media3.common.text.Cue.TEXT_SIZE_TYPE_FRACTIONAL, androidx.media3.common.text.Cue.TEXT_SIZE_TYPE_FRACTIONAL_IGNORE_PADDING, androidx.media3.common.text.Cue.TEXT_SIZE_TYPE_ABSOLUTE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Cue.TextSizeType { } @IntDef({androidx.media3.common.text.Cue.TYPE_UNSET, androidx.media3.common.text.Cue.VERTICAL_TYPE_RL, androidx.media3.common.text.Cue.VERTICAL_TYPE_LR}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Cue.VerticalType { } public final class CueGroup { field public final com.google.common.collect.ImmutableList cues; } } package androidx.media3.common.util { public final class Util { method public static boolean checkCleartextTrafficPermitted(androidx.media3.common.MediaItem...); method @Nullable public static String getAdaptiveMimeTypeForContentType(@androidx.media3.common.C.ContentType int); method @Nullable public static java.util.UUID getDrmUuid(String); method public static boolean handlePauseButtonAction(@Nullable androidx.media3.common.Player); method public static boolean handlePlayButtonAction(@Nullable androidx.media3.common.Player); method public static boolean handlePlayPauseButtonAction(@Nullable androidx.media3.common.Player); method @androidx.media3.common.C.ContentType public static int inferContentType(android.net.Uri); method @androidx.media3.common.C.ContentType public static int inferContentTypeForExtension(String); method @androidx.media3.common.C.ContentType public static int inferContentTypeForUriAndMimeType(android.net.Uri, @Nullable String); method @Deprecated public static boolean maybeRequestReadExternalStoragePermission(android.app.Activity, android.net.Uri...); method @Deprecated public static boolean maybeRequestReadExternalStoragePermission(android.app.Activity, androidx.media3.common.MediaItem...); method public static boolean maybeRequestReadStoragePermission(android.app.Activity, androidx.media3.common.MediaItem...); method @org.checkerframework.checker.nullness.qual.EnsuresNonNullIf(result=false, expression="#1") public static boolean shouldShowPlayButton(@Nullable androidx.media3.common.Player); } } package androidx.media3.datasource { public interface DataSource { } public static interface DataSource.Factory { } public class DataSourceException extends java.io.IOException { field @androidx.media3.common.PlaybackException.ErrorCode public final int reason; } public final class DefaultDataSource implements androidx.media3.datasource.DataSource { } public static final class DefaultDataSource.Factory implements androidx.media3.datasource.DataSource.Factory { ctor public DefaultDataSource.Factory(android.content.Context); ctor public DefaultDataSource.Factory(android.content.Context, androidx.media3.datasource.DataSource.Factory); } public class DefaultHttpDataSource implements androidx.media3.datasource.DataSource androidx.media3.datasource.HttpDataSource { } public static final class DefaultHttpDataSource.Factory implements androidx.media3.datasource.HttpDataSource.Factory { ctor public DefaultHttpDataSource.Factory(); } public interface HttpDataSource extends androidx.media3.datasource.DataSource { } public static final class HttpDataSource.CleartextNotPermittedException extends androidx.media3.datasource.HttpDataSource.HttpDataSourceException { } public static interface HttpDataSource.Factory extends androidx.media3.datasource.DataSource.Factory { } public static class HttpDataSource.HttpDataSourceException extends androidx.media3.datasource.DataSourceException { 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 @androidx.media3.datasource.HttpDataSource.HttpDataSourceException.Type public final int type; } @IntDef({androidx.media3.datasource.HttpDataSource.HttpDataSourceException.TYPE_OPEN, androidx.media3.datasource.HttpDataSource.HttpDataSourceException.TYPE_READ, androidx.media3.datasource.HttpDataSource.HttpDataSourceException.TYPE_CLOSE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface HttpDataSource.HttpDataSourceException.Type { } public static final class HttpDataSource.InvalidContentTypeException extends androidx.media3.datasource.HttpDataSource.HttpDataSourceException { field public final String contentType; } public static final class HttpDataSource.InvalidResponseCodeException extends androidx.media3.datasource.HttpDataSource.HttpDataSourceException { field public final byte[] responseBody; field public final int responseCode; field @Nullable public final String responseMessage; } } package androidx.media3.datasource.cronet { public class CronetDataSource implements androidx.media3.datasource.DataSource androidx.media3.datasource.HttpDataSource { } public static final class CronetDataSource.Factory implements androidx.media3.datasource.HttpDataSource.Factory { ctor public CronetDataSource.Factory(org.chromium.net.CronetEngine, java.util.concurrent.Executor); } public final class CronetUtil { method @Nullable public static org.chromium.net.CronetEngine buildCronetEngine(android.content.Context); } } package androidx.media3.datasource.okhttp { public class OkHttpDataSource implements androidx.media3.datasource.DataSource androidx.media3.datasource.HttpDataSource { } public static final class OkHttpDataSource.Factory implements androidx.media3.datasource.HttpDataSource.Factory { ctor public OkHttpDataSource.Factory(okhttp3.Call.Factory); } } package androidx.media3.exoplayer { public final class ExoPlaybackException extends androidx.media3.common.PlaybackException { } public interface ExoPlayer extends androidx.media3.common.Player { method public void addAnalyticsListener(androidx.media3.exoplayer.analytics.AnalyticsListener); method @Nullable public androidx.media3.exoplayer.ExoPlaybackException getPlayerError(); method public void removeAnalyticsListener(androidx.media3.exoplayer.analytics.AnalyticsListener); method public void setAudioAttributes(androidx.media3.common.AudioAttributes, boolean); method public void setHandleAudioBecomingNoisy(boolean); method public void setWakeMode(@androidx.media3.common.C.WakeMode int); } public static final class ExoPlayer.Builder { ctor public ExoPlayer.Builder(android.content.Context); method public androidx.media3.exoplayer.ExoPlayer build(); method public androidx.media3.exoplayer.ExoPlayer.Builder setAudioAttributes(androidx.media3.common.AudioAttributes, boolean); method public androidx.media3.exoplayer.ExoPlayer.Builder setHandleAudioBecomingNoisy(boolean); method public androidx.media3.exoplayer.ExoPlayer.Builder setMediaSourceFactory(androidx.media3.exoplayer.source.MediaSource.Factory); method public androidx.media3.exoplayer.ExoPlayer.Builder setWakeMode(@androidx.media3.common.C.WakeMode int); } } package androidx.media3.exoplayer.analytics { public interface AnalyticsListener { } } package androidx.media3.exoplayer.drm { @RequiresApi(18) public final class FrameworkMediaDrm { method public static boolean isCryptoSchemeSupported(java.util.UUID); } } package androidx.media3.exoplayer.ima { public final class ImaAdsLoader implements androidx.media3.exoplayer.source.ads.AdsLoader { method public void release(); method public void setPlayer(@Nullable androidx.media3.common.Player); } public static final class ImaAdsLoader.Builder { ctor public ImaAdsLoader.Builder(android.content.Context); method public androidx.media3.exoplayer.ima.ImaAdsLoader build(); } } package androidx.media3.exoplayer.source { public final class DefaultMediaSourceFactory implements androidx.media3.exoplayer.source.MediaSource.Factory { ctor public DefaultMediaSourceFactory(android.content.Context); method public androidx.media3.exoplayer.source.DefaultMediaSourceFactory clearLocalAdInsertionComponents(); method public androidx.media3.exoplayer.source.DefaultMediaSourceFactory setDataSourceFactory(androidx.media3.datasource.DataSource.Factory); method public androidx.media3.exoplayer.source.DefaultMediaSourceFactory setLocalAdInsertionComponents(androidx.media3.exoplayer.source.ads.AdsLoader.Provider, androidx.media3.common.AdViewProvider); } public interface MediaSource { } public static interface MediaSource.Factory { } } package androidx.media3.exoplayer.source.ads { public interface AdsLoader { method public void release(); method public void setPlayer(@Nullable androidx.media3.common.Player); } public static interface AdsLoader.Provider { method @Nullable public androidx.media3.exoplayer.source.ads.AdsLoader getAdsLoader(androidx.media3.common.MediaItem.AdsConfiguration); } } package androidx.media3.exoplayer.util { public class DebugTextViewHelper { ctor public DebugTextViewHelper(androidx.media3.exoplayer.ExoPlayer, android.widget.TextView); method public final void start(); method public final void stop(); } public class EventLogger implements androidx.media3.exoplayer.analytics.AnalyticsListener { ctor public EventLogger(); ctor public EventLogger(String); } } package androidx.media3.session { public final class CommandButton { field public final CharSequence displayName; field @DrawableRes public final int iconResId; field public final boolean isEnabled; field @androidx.media3.common.Player.Command public final int playerCommand; field @Nullable public final androidx.media3.session.SessionCommand sessionCommand; } public static final class CommandButton.Builder { ctor public CommandButton.Builder(); method public androidx.media3.session.CommandButton build(); method public androidx.media3.session.CommandButton.Builder setDisplayName(CharSequence); method public androidx.media3.session.CommandButton.Builder setEnabled(boolean); method public androidx.media3.session.CommandButton.Builder setExtras(android.os.Bundle); method public androidx.media3.session.CommandButton.Builder setIconResId(@DrawableRes int); method public androidx.media3.session.CommandButton.Builder setPlayerCommand(@androidx.media3.common.Player.Command int); method public androidx.media3.session.CommandButton.Builder setSessionCommand(androidx.media3.session.SessionCommand); } public final class LibraryResult { method public static androidx.media3.session.LibraryResult ofError(@androidx.media3.session.LibraryResult.Code int); method public static androidx.media3.session.LibraryResult ofError(@androidx.media3.session.LibraryResult.Code int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public static androidx.media3.session.LibraryResult ofItem(androidx.media3.common.MediaItem, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public static androidx.media3.session.LibraryResult> ofItemList(java.util.List, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public static androidx.media3.session.LibraryResult ofVoid(); method public static androidx.media3.session.LibraryResult ofVoid(@Nullable androidx.media3.session.MediaLibraryService.LibraryParams); 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 androidx.media3.session.MediaLibraryService.LibraryParams params; field @androidx.media3.session.LibraryResult.Code public final int resultCode; field @Nullable public final V value; } @IntDef({androidx.media3.session.LibraryResult.RESULT_SUCCESS, androidx.media3.session.LibraryResult.RESULT_ERROR_UNKNOWN, androidx.media3.session.LibraryResult.RESULT_ERROR_INVALID_STATE, androidx.media3.session.LibraryResult.RESULT_ERROR_BAD_VALUE, androidx.media3.session.LibraryResult.RESULT_ERROR_PERMISSION_DENIED, androidx.media3.session.LibraryResult.RESULT_ERROR_IO, androidx.media3.session.LibraryResult.RESULT_INFO_SKIPPED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_DISCONNECTED, androidx.media3.session.LibraryResult.RESULT_ERROR_NOT_SUPPORTED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_SETUP_REQUIRED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface LibraryResult.Code { } public final class MediaBrowser extends androidx.media3.session.MediaController { method public com.google.common.util.concurrent.ListenableFuture>> getChildren(String, @IntRange(from=0) int, @IntRange(from=1) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public com.google.common.util.concurrent.ListenableFuture> getItem(String); method public com.google.common.util.concurrent.ListenableFuture> getLibraryRoot(@Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public com.google.common.util.concurrent.ListenableFuture>> getSearchResult(String, @IntRange(from=0) int, @IntRange(from=1) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public com.google.common.util.concurrent.ListenableFuture> search(String, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public com.google.common.util.concurrent.ListenableFuture> subscribe(String, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public com.google.common.util.concurrent.ListenableFuture> unsubscribe(String); } public static final class MediaBrowser.Builder { ctor public MediaBrowser.Builder(android.content.Context, androidx.media3.session.SessionToken); method public com.google.common.util.concurrent.ListenableFuture buildAsync(); method public androidx.media3.session.MediaBrowser.Builder setApplicationLooper(android.os.Looper); method public androidx.media3.session.MediaBrowser.Builder setConnectionHints(android.os.Bundle); method public androidx.media3.session.MediaBrowser.Builder setListener(androidx.media3.session.MediaBrowser.Listener); } public static interface MediaBrowser.Listener extends androidx.media3.session.MediaController.Listener { method public default void onChildrenChanged(androidx.media3.session.MediaBrowser, String, @IntRange(from=0) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public default void onSearchResultChanged(androidx.media3.session.MediaBrowser, String, @IntRange(from=0) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); } 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 = "android.media.extras.ERROR_RESOLUTION_ACTION_INTENT"; field public static final String EXTRAS_KEY_ERROR_RESOLUTION_ACTION_LABEL_COMPAT = "android.media.extras.ERROR_RESOLUTION_ACTION_LABEL"; field public static final String EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_NEXT = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_NEXT"; field public static final String EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_PREV = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_PREVIOUS"; } @com.google.errorprone.annotations.DoNotMock public class MediaController implements androidx.media3.common.Player { method public final void addListener(androidx.media3.common.Player.Listener); method public final void addMediaItem(androidx.media3.common.MediaItem); method public final void addMediaItem(int, androidx.media3.common.MediaItem); method public final void addMediaItems(java.util.List); method public final void addMediaItems(int, java.util.List); method public final boolean canAdvertiseSession(); method public final void clearMediaItems(); method public final void clearVideoSurface(); method public final void clearVideoSurface(@Nullable android.view.Surface); method public final void clearVideoSurfaceHolder(@Nullable android.view.SurfaceHolder); method public final void clearVideoSurfaceView(@Nullable android.view.SurfaceView); method public final void clearVideoTextureView(@Nullable android.view.TextureView); method @Deprecated public final void decreaseDeviceVolume(); method public final void decreaseDeviceVolume(@androidx.media3.common.C.VolumeFlags int); method public final android.os.Looper getApplicationLooper(); method public final androidx.media3.common.AudioAttributes getAudioAttributes(); method public final androidx.media3.common.Player.Commands getAvailableCommands(); method public final androidx.media3.session.SessionCommands getAvailableSessionCommands(); method @IntRange(from=0, to=100) public final int getBufferedPercentage(); method public final long getBufferedPosition(); method @Nullable public final androidx.media3.session.SessionToken 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 androidx.media3.common.text.CueGroup getCurrentCues(); method public final long getCurrentLiveOffset(); method @Nullable public final androidx.media3.common.MediaItem getCurrentMediaItem(); method public final int getCurrentMediaItemIndex(); method public final int getCurrentPeriodIndex(); method public final long getCurrentPosition(); method public final androidx.media3.common.Timeline getCurrentTimeline(); method public final androidx.media3.common.Tracks getCurrentTracks(); method public final androidx.media3.common.DeviceInfo getDeviceInfo(); method @IntRange(from=0) public final int getDeviceVolume(); method public final long getDuration(); method public final long getMaxSeekToPreviousPosition(); method public final androidx.media3.common.MediaItem getMediaItemAt(int); method public final int getMediaItemCount(); method public final androidx.media3.common.MediaMetadata getMediaMetadata(); method public final int getNextMediaItemIndex(); method public final boolean getPlayWhenReady(); method public final androidx.media3.common.PlaybackParameters getPlaybackParameters(); method @androidx.media3.common.Player.State public final int getPlaybackState(); method @androidx.media3.common.Player.PlaybackSuppressionReason public final int getPlaybackSuppressionReason(); method @Nullable public final androidx.media3.common.PlaybackException getPlayerError(); method public final androidx.media3.common.MediaMetadata getPlaylistMetadata(); method public final int getPreviousMediaItemIndex(); method @androidx.media3.common.Player.RepeatMode public final int getRepeatMode(); method public final long getSeekBackIncrement(); method public final long getSeekForwardIncrement(); method @Nullable public final android.app.PendingIntent getSessionActivity(); method public final boolean getShuffleModeEnabled(); method public final long getTotalBufferedDuration(); method public final androidx.media3.common.TrackSelectionParameters getTrackSelectionParameters(); method public final androidx.media3.common.VideoSize 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(@androidx.media3.common.C.VolumeFlags int); method public final boolean isCommandAvailable(@androidx.media3.common.Player.Command 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(@androidx.media3.session.SessionCommand.CommandCode int); method public final boolean isSessionCommandAvailable(androidx.media3.session.SessionCommand); 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(java.util.concurrent.Future); method public final void removeListener(androidx.media3.common.Player.Listener); method public final void removeMediaItem(int); method public final void removeMediaItems(int, int); method public final void replaceMediaItem(int, androidx.media3.common.MediaItem); method public final void replaceMediaItems(int, int, java.util.List); method public final void seekBack(); method public final void seekForward(); method public final void seekTo(long); method public final void seekTo(int, 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 com.google.common.util.concurrent.ListenableFuture sendCustomCommand(androidx.media3.session.SessionCommand, android.os.Bundle); method @Deprecated public final void setDeviceMuted(boolean); method public final void setDeviceMuted(boolean, @androidx.media3.common.C.VolumeFlags int); method @Deprecated public final void setDeviceVolume(@IntRange(from=0) int); method public final void setDeviceVolume(@IntRange(from=0) int, @androidx.media3.common.C.VolumeFlags int); method public final void setMediaItem(androidx.media3.common.MediaItem); method public final void setMediaItem(androidx.media3.common.MediaItem, long); method public final void setMediaItem(androidx.media3.common.MediaItem, boolean); method public final void setMediaItems(java.util.List); method public final void setMediaItems(java.util.List, boolean); method public final void setMediaItems(java.util.List, int, long); method public final void setPlayWhenReady(boolean); method public final void setPlaybackParameters(androidx.media3.common.PlaybackParameters); method public final void setPlaybackSpeed(float); method public final void setPlaylistMetadata(androidx.media3.common.MediaMetadata); method public final com.google.common.util.concurrent.ListenableFuture setRating(String, androidx.media3.common.Rating); method public final com.google.common.util.concurrent.ListenableFuture setRating(androidx.media3.common.Rating); method public final void setRepeatMode(@androidx.media3.common.Player.RepeatMode int); method public final void setShuffleModeEnabled(boolean); method public final void setTrackSelectionParameters(androidx.media3.common.TrackSelectionParameters); method public final void setVideoSurface(@Nullable android.view.Surface); method public final void setVideoSurfaceHolder(@Nullable android.view.SurfaceHolder); method public final void setVideoSurfaceView(@Nullable android.view.SurfaceView); method public final void setVideoTextureView(@Nullable android.view.TextureView); method public final void setVolume(@FloatRange(from=0, to=1) float); method public final void stop(); } public static final class MediaController.Builder { ctor public MediaController.Builder(android.content.Context, androidx.media3.session.SessionToken); method public com.google.common.util.concurrent.ListenableFuture buildAsync(); method public androidx.media3.session.MediaController.Builder setApplicationLooper(android.os.Looper); method public androidx.media3.session.MediaController.Builder setConnectionHints(android.os.Bundle); method public androidx.media3.session.MediaController.Builder setListener(androidx.media3.session.MediaController.Listener); } public static interface MediaController.Listener { method public default void onAvailableSessionCommandsChanged(androidx.media3.session.MediaController, androidx.media3.session.SessionCommands); method public default com.google.common.util.concurrent.ListenableFuture onCustomCommand(androidx.media3.session.MediaController, androidx.media3.session.SessionCommand, android.os.Bundle); method public default void onDisconnected(androidx.media3.session.MediaController); method public default void onExtrasChanged(androidx.media3.session.MediaController, android.os.Bundle); method public default com.google.common.util.concurrent.ListenableFuture onSetCustomLayout(androidx.media3.session.MediaController, java.util.List); } public abstract class MediaLibraryService extends androidx.media3.session.MediaSessionService { ctor public MediaLibraryService(); method @Nullable public abstract androidx.media3.session.MediaLibraryService.MediaLibrarySession onGetSession(androidx.media3.session.MediaSession.ControllerInfo); field public static final String SERVICE_INTERFACE = "androidx.media3.session.MediaLibraryService"; } public static final class MediaLibraryService.LibraryParams { field public final boolean isOffline; field public final boolean isRecent; field public final boolean isSuggested; } public static final class MediaLibraryService.LibraryParams.Builder { ctor public MediaLibraryService.LibraryParams.Builder(); method public androidx.media3.session.MediaLibraryService.LibraryParams build(); method public androidx.media3.session.MediaLibraryService.LibraryParams.Builder setOffline(boolean); method public androidx.media3.session.MediaLibraryService.LibraryParams.Builder setRecent(boolean); method public androidx.media3.session.MediaLibraryService.LibraryParams.Builder setSuggested(boolean); } public static final class MediaLibraryService.MediaLibrarySession extends androidx.media3.session.MediaSession { method public void notifyChildrenChanged(androidx.media3.session.MediaSession.ControllerInfo, String, @IntRange(from=0) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public void notifyChildrenChanged(String, @IntRange(from=0) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public void notifySearchResultChanged(androidx.media3.session.MediaSession.ControllerInfo, String, @IntRange(from=0) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); } public static final class MediaLibraryService.MediaLibrarySession.Builder { ctor public MediaLibraryService.MediaLibrarySession.Builder(androidx.media3.session.MediaLibraryService, androidx.media3.common.Player, androidx.media3.session.MediaLibraryService.MediaLibrarySession.Callback); method public androidx.media3.session.MediaLibraryService.MediaLibrarySession build(); method public androidx.media3.session.MediaLibraryService.MediaLibrarySession.Builder setExtras(android.os.Bundle); method public androidx.media3.session.MediaLibraryService.MediaLibrarySession.Builder setId(String); method public androidx.media3.session.MediaLibraryService.MediaLibrarySession.Builder setSessionActivity(android.app.PendingIntent); } public static interface MediaLibraryService.MediaLibrarySession.Callback extends androidx.media3.session.MediaSession.Callback { method public default com.google.common.util.concurrent.ListenableFuture>> onGetChildren(androidx.media3.session.MediaLibraryService.MediaLibrarySession, androidx.media3.session.MediaSession.ControllerInfo, String, @IntRange(from=0) int, @IntRange(from=1) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public default com.google.common.util.concurrent.ListenableFuture> onGetItem(androidx.media3.session.MediaLibraryService.MediaLibrarySession, androidx.media3.session.MediaSession.ControllerInfo, String); method public default com.google.common.util.concurrent.ListenableFuture> onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession, androidx.media3.session.MediaSession.ControllerInfo, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public default com.google.common.util.concurrent.ListenableFuture>> onGetSearchResult(androidx.media3.session.MediaLibraryService.MediaLibrarySession, androidx.media3.session.MediaSession.ControllerInfo, String, @IntRange(from=0) int, @IntRange(from=1) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public default com.google.common.util.concurrent.ListenableFuture> onSearch(androidx.media3.session.MediaLibraryService.MediaLibrarySession, androidx.media3.session.MediaSession.ControllerInfo, String, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public default com.google.common.util.concurrent.ListenableFuture> onSubscribe(androidx.media3.session.MediaLibraryService.MediaLibrarySession, androidx.media3.session.MediaSession.ControllerInfo, String, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams); method public default com.google.common.util.concurrent.ListenableFuture> onUnsubscribe(androidx.media3.session.MediaLibraryService.MediaLibrarySession, androidx.media3.session.MediaSession.ControllerInfo, String); } public final class MediaNotification { ctor public MediaNotification(@IntRange(from=1) int, android.app.Notification); field public final android.app.Notification notification; field @IntRange(from=1) public final int notificationId; } @com.google.errorprone.annotations.DoNotMock public class MediaSession { method public final void broadcastCustomCommand(androidx.media3.session.SessionCommand, android.os.Bundle); method public final java.util.List getConnectedControllers(); method @Nullable public final androidx.media3.session.MediaSession.ControllerInfo getControllerForCurrentRequest(); method public final String getId(); method public final androidx.media3.common.Player getPlayer(); method @Nullable public final android.app.PendingIntent getSessionActivity(); method public final androidx.media3.session.SessionToken getToken(); method public final void release(); method public final com.google.common.util.concurrent.ListenableFuture sendCustomCommand(androidx.media3.session.MediaSession.ControllerInfo, androidx.media3.session.SessionCommand, android.os.Bundle); method public final void setAvailableCommands(androidx.media3.session.MediaSession.ControllerInfo, androidx.media3.session.SessionCommands, androidx.media3.common.Player.Commands); method public final com.google.common.util.concurrent.ListenableFuture setCustomLayout(androidx.media3.session.MediaSession.ControllerInfo, java.util.List); method public final void setCustomLayout(java.util.List); method public final void setPlayer(androidx.media3.common.Player); method public final void setSessionExtras(android.os.Bundle); method public final void setSessionExtras(androidx.media3.session.MediaSession.ControllerInfo, android.os.Bundle); } public static final class MediaSession.Builder { ctor public MediaSession.Builder(android.content.Context, androidx.media3.common.Player); method public androidx.media3.session.MediaSession build(); method public androidx.media3.session.MediaSession.Builder setCallback(androidx.media3.session.MediaSession.Callback); method public androidx.media3.session.MediaSession.Builder setExtras(android.os.Bundle); method public androidx.media3.session.MediaSession.Builder setId(String); method public androidx.media3.session.MediaSession.Builder setSessionActivity(android.app.PendingIntent); } public static interface MediaSession.Callback { method public default com.google.common.util.concurrent.ListenableFuture> onAddMediaItems(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, java.util.List); method public default androidx.media3.session.MediaSession.ConnectionResult onConnect(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo); method public default com.google.common.util.concurrent.ListenableFuture onCustomCommand(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, androidx.media3.session.SessionCommand, android.os.Bundle); method public default void onDisconnected(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo); method @Deprecated @androidx.media3.session.SessionResult.Code public default int onPlayerCommandRequest(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, @androidx.media3.common.Player.Command int); method public default void onPostConnect(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo); method public default com.google.common.util.concurrent.ListenableFuture onSetRating(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, String, androidx.media3.common.Rating); method public default com.google.common.util.concurrent.ListenableFuture onSetRating(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, androidx.media3.common.Rating); } public static final class MediaSession.ConnectionResult { method public static androidx.media3.session.MediaSession.ConnectionResult accept(androidx.media3.session.SessionCommands, androidx.media3.common.Player.Commands); method public static androidx.media3.session.MediaSession.ConnectionResult reject(); field public final androidx.media3.common.Player.Commands availablePlayerCommands; field public final androidx.media3.session.SessionCommands availableSessionCommands; field public final boolean isAccepted; } public static final class MediaSession.ControllerInfo { method public android.os.Bundle getConnectionHints(); method public int getControllerVersion(); method public String getPackageName(); method public int getUid(); field public static final int LEGACY_CONTROLLER_VERSION = 0; // 0x0 } public abstract class MediaSessionService extends android.app.Service { ctor public MediaSessionService(); method public final void addSession(androidx.media3.session.MediaSession); method public final java.util.List getSessions(); method public final boolean isSessionAdded(androidx.media3.session.MediaSession); method @CallSuper @Nullable public android.os.IBinder onBind(@Nullable android.content.Intent); method @Nullable public abstract androidx.media3.session.MediaSession onGetSession(androidx.media3.session.MediaSession.ControllerInfo); method @Deprecated public void onUpdateNotification(androidx.media3.session.MediaSession); method public void onUpdateNotification(androidx.media3.session.MediaSession, boolean); method public final void removeSession(androidx.media3.session.MediaSession); field public static final String SERVICE_INTERFACE = "androidx.media3.session.MediaSessionService"; } public final class SessionCommand { ctor public SessionCommand(@androidx.media3.session.SessionCommand.CommandCode int); ctor public SessionCommand(String, android.os.Bundle); 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 @androidx.media3.session.SessionCommand.CommandCode public final int commandCode; field public final String customAction; field public final android.os.Bundle customExtras; } @IntDef({androidx.media3.session.SessionCommand.COMMAND_CODE_CUSTOM, androidx.media3.session.SessionCommand.COMMAND_CODE_SESSION_SET_RATING, androidx.media3.session.SessionCommand.COMMAND_CODE_LIBRARY_GET_LIBRARY_ROOT, androidx.media3.session.SessionCommand.COMMAND_CODE_LIBRARY_SUBSCRIBE, androidx.media3.session.SessionCommand.COMMAND_CODE_LIBRARY_UNSUBSCRIBE, androidx.media3.session.SessionCommand.COMMAND_CODE_LIBRARY_GET_CHILDREN, androidx.media3.session.SessionCommand.COMMAND_CODE_LIBRARY_GET_ITEM, androidx.media3.session.SessionCommand.COMMAND_CODE_LIBRARY_SEARCH, androidx.media3.session.SessionCommand.COMMAND_CODE_LIBRARY_GET_SEARCH_RESULT}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface SessionCommand.CommandCode { } public final class SessionCommands { method public androidx.media3.session.SessionCommands.Builder buildUpon(); method public boolean contains(androidx.media3.session.SessionCommand); method public boolean contains(@androidx.media3.session.SessionCommand.CommandCode int); field public static final androidx.media3.session.SessionCommands EMPTY; field public final com.google.common.collect.ImmutableSet commands; } public static final class SessionCommands.Builder { ctor public SessionCommands.Builder(); method public androidx.media3.session.SessionCommands.Builder add(androidx.media3.session.SessionCommand); method public androidx.media3.session.SessionCommands.Builder add(@androidx.media3.session.SessionCommand.CommandCode int); method public androidx.media3.session.SessionCommands build(); method public androidx.media3.session.SessionCommands.Builder remove(androidx.media3.session.SessionCommand); method public androidx.media3.session.SessionCommands.Builder remove(@androidx.media3.session.SessionCommand.CommandCode int); } public final class SessionResult { ctor public SessionResult(@androidx.media3.session.SessionResult.Code int); ctor public SessionResult(@androidx.media3.session.SessionResult.Code int, android.os.Bundle); 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 android.os.Bundle extras; field @androidx.media3.session.SessionResult.Code public final int resultCode; } @IntDef({androidx.media3.session.SessionResult.RESULT_SUCCESS, androidx.media3.session.SessionResult.RESULT_ERROR_UNKNOWN, androidx.media3.session.SessionResult.RESULT_ERROR_INVALID_STATE, androidx.media3.session.SessionResult.RESULT_ERROR_BAD_VALUE, androidx.media3.session.SessionResult.RESULT_ERROR_PERMISSION_DENIED, androidx.media3.session.SessionResult.RESULT_ERROR_IO, androidx.media3.session.SessionResult.RESULT_INFO_SKIPPED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_DISCONNECTED, androidx.media3.session.SessionResult.RESULT_ERROR_NOT_SUPPORTED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_SETUP_REQUIRED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface SessionResult.Code { } public final class SessionToken { ctor public SessionToken(android.content.Context, android.content.ComponentName); method public static com.google.common.collect.ImmutableSet getAllServiceTokens(android.content.Context); method public android.os.Bundle getExtras(); method public String getPackageName(); method public String getServiceName(); method public int getSessionVersion(); method @androidx.media3.session.SessionToken.TokenType 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({androidx.media3.session.SessionToken.TYPE_SESSION, androidx.media3.session.SessionToken.TYPE_SESSION_SERVICE, androidx.media3.session.SessionToken.TYPE_LIBRARY_SERVICE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface SessionToken.TokenType { } } package androidx.media3.ui { public class PlayerView extends android.widget.FrameLayout implements androidx.media3.common.AdViewProvider { ctor public PlayerView(android.content.Context); ctor public PlayerView(android.content.Context, @Nullable android.util.AttributeSet); ctor public PlayerView(android.content.Context, @Nullable android.util.AttributeSet, int); method public android.view.ViewGroup getAdViewGroup(); method @Nullable public androidx.media3.common.Player getPlayer(); method public boolean getUseController(); method public void onPause(); method public void onResume(); method public void setControllerVisibilityListener(@Nullable androidx.media3.ui.PlayerView.ControllerVisibilityListener); method public void setErrorMessageProvider(@Nullable androidx.media3.common.ErrorMessageProvider); method public void setFullscreenButtonClickListener(@Nullable androidx.media3.ui.PlayerView.FullscreenButtonClickListener); method public void setPlayer(@Nullable androidx.media3.common.Player); method public void setUseController(boolean); } public static interface PlayerView.ControllerVisibilityListener { method public void onVisibilityChanged(int); } public static interface PlayerView.FullscreenButtonClickListener { method public void onFullscreenButtonClick(boolean); } }