0% found this document useful (0 votes)
4 views

API

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

Uploaded by

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

API

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

Uploaded by

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

// 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<androidx.media3.common.AdOverlayInfo>
getAdOverlayInfos();
method @Nullable public android.view.ViewGroup getAdViewGroup();
}

public final class AudioAttributes {


method 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;
}

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_AUXILIARY = 32768; // 0x8000
field public static final int ROLE_FLAG_CAPTION = 64; // 0x40
field public static final int ROLE_FLAG_COMMENTARY = 8; // 0x8
field public static final int ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND = 1024; //
0x400
field public static final int ROLE_FLAG_DESCRIBES_VIDEO = 512; // 0x200
field public static final int ROLE_FLAG_DUB = 16; // 0x10
field public static final int ROLE_FLAG_EASY_TO_READ = 8192; // 0x2000
field public static final int ROLE_FLAG_EMERGENCY = 32; // 0x20
field public static final int ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY = 2048;
// 0x800
field public static final int ROLE_FLAG_MAIN = 1; // 0x1
field public static final int ROLE_FLAG_SIGN = 256; // 0x100
field public static final int ROLE_FLAG_SUBTITLE = 128; // 0x80
field public static final int ROLE_FLAG_SUPPLEMENTARY = 4; // 0x4
field public static final int ROLE_FLAG_TRANSCRIBES_DIALOG = 4096; // 0x1000
field public static final int ROLE_FLAG_TRICK_PLAY = 16384; // 0x4000
field public static final int SELECTION_FLAG_AUTOSELECT = 4; // 0x4
field public static final int SELECTION_FLAG_DEFAULT = 1; // 0x1
field public static final int SELECTION_FLAG_FORCED = 2; // 0x2
field public static final int SPATIALIZATION_BEHAVIOR_AUTO = 0; // 0x0
field public static final int SPATIALIZATION_BEHAVIOR_NEVER = 1; // 0x1
field public static final long TIME_END_OF_SOURCE = -9223372036854775808L; //
0x8000000000000000L
field public static final long TIME_UNSET = -9223372036854775807L; //
0x8000000000000001L
field public static final int TRACK_TYPE_AUDIO = 1; // 0x1
field public static final int TRACK_TYPE_CAMERA_MOTION = 6; // 0x6
field public static final int TRACK_TYPE_CUSTOM_BASE = 10000; // 0x2710
field public static final int TRACK_TYPE_DEFAULT = 0; // 0x0
field public static final int TRACK_TYPE_IMAGE = 4; // 0x4
field public static final int TRACK_TYPE_METADATA = 5; // 0x5
field public static final int TRACK_TYPE_NONE = -2; // 0xfffffffe
field public static final int TRACK_TYPE_TEXT = 3; // 0x3
field public static final int TRACK_TYPE_UNKNOWN = -1; // 0xffffffff
field public static final int TRACK_TYPE_VIDEO = 2; // 0x2
field public static final int USAGE_ALARM = 4; // 0x4
field public static final int USAGE_ASSISTANCE_ACCESSIBILITY = 11; // 0xb
field public static final int USAGE_ASSISTANCE_NAVIGATION_GUIDANCE = 12; // 0xc
field public static final int USAGE_ASSISTANCE_SONIFICATION = 13; // 0xd
field public static final int USAGE_ASSISTANT = 16; // 0x10
field public static final int USAGE_GAME = 14; // 0xe
field public static final int USAGE_MEDIA = 1; // 0x1
field public static final int USAGE_NOTIFICATION = 5; // 0x5
field public static final int USAGE_NOTIFICATION_COMMUNICATION_DELAYED = 9; //
0x9
field public static final int USAGE_NOTIFICATION_COMMUNICATION_INSTANT = 8; //
0x8
field public static final int USAGE_NOTIFICATION_COMMUNICATION_REQUEST = 7; //
0x7
field public static final int USAGE_NOTIFICATION_EVENT = 10; // 0xa
field public static final int USAGE_NOTIFICATION_RINGTONE = 6; // 0x6
field public static final int USAGE_UNKNOWN = 0; // 0x0
field public static final int USAGE_VOICE_COMMUNICATION = 2; // 0x2
field public static final int USAGE_VOICE_COMMUNICATION_SIGNALLING = 3; // 0x3
field public static final 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,
androidx.media3.common.C.ROLE_FLAG_AUXILIARY}) @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<T extends java.lang.Throwable> {


method public android.util.Pair<java.lang.Integer,java.lang.String>
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(android.net.Uri);
method public static androidx.media3.common.MediaItem fromUri(String);
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<androidx.media3.common.MediaItem.SubtitleC
onfiguration>);
method public androidx.media3.common.MediaItem.Builder setTag(@Nullable
Object);
method public androidx.media3.common.MediaItem.Builder setUri(@Nullable
android.net.Uri);
method public androidx.media3.common.MediaItem.Builder setUri(@Nullable
String);
}

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

@IntDef(open=true,
value={androidx.media3.common.PlaybackException.ERROR_CODE_INVALID_STATE,
androidx.media3.common.PlaybackException.ERROR_CODE_BAD_VALUE,
androidx.media3.common.PlaybackException.ERROR_CODE_PERMISSION_DENIED,
androidx.media3.common.PlaybackException.ERROR_CODE_NOT_SUPPORTED,
androidx.media3.common.PlaybackException.ERROR_CODE_DISCONNECTED,
androidx.media3.common.PlaybackException.ERROR_CODE_AUTHENTICATION_EXPIRED,
androidx.media3.common.PlaybackException.ERROR_CODE_PREMIUM_ACCOUNT_REQUIRED,
androidx.media3.common.PlaybackException.ERROR_CODE_CONCURRENT_STREAM_LIMIT,
androidx.media3.common.PlaybackException.ERROR_CODE_PARENTAL_CONTROL_RESTRICTED,
androidx.media3.common.PlaybackException.ERROR_CODE_NOT_AVAILABLE_IN_REGION,
androidx.media3.common.PlaybackException.ERROR_CODE_SKIP_LIMIT_REACHED,
androidx.media3.common.PlaybackException.ERROR_CODE_SETUP_REQUIRED,
androidx.media3.common.PlaybackException.ERROR_CODE_END_OF_PLAYLIST,
androidx.media3.common.PlaybackException.ERROR_CODE_CONTENT_ALREADY_PLAYING,
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_CAPABIL
ITIES,
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_AUDIO_TRACK_OFFLOAD_INIT_FAILED
,
androidx.media3.common.PlaybackException.ERROR_CODE_AUDIO_TRACK_OFFLOAD_WRITE_FAILE
D, 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(int,
java.util.List<androidx.media3.common.MediaItem>);
method public void
addMediaItems(java.util.List<androidx.media3.common.MediaItem>);
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<androidx.media3.common.MediaItem>);
method public void seekBack();
method public void seekForward();
method public void seekTo(int, long);
method public void seekTo(long);
method public void seekToDefaultPosition();
method public void seekToDefaultPosition(int);
method public void seekToNext();
method public void seekToNextMediaItem();
method public void seekToPrevious();
method public void seekToPreviousMediaItem();
method public void setAudioAttributes(androidx.media3.common.AudioAttributes,
boolean);
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,
@androidx.media3.common.C.VolumeFlags int);
method public void setMediaItem(androidx.media3.common.MediaItem);
method public void setMediaItem(androidx.media3.common.MediaItem, boolean);
method public void setMediaItem(androidx.media3.common.MediaItem, long);
method public void
setMediaItems(java.util.List<androidx.media3.common.MediaItem>);
method public void
setMediaItems(java.util.List<androidx.media3.common.MediaItem>, boolean);
method public void
setMediaItems(java.util.List<androidx.media3.common.MediaItem>, 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 public static final int COMMAND_SET_AUDIO_ATTRIBUTES = 35; // 0x23
field @Deprecated public static final int COMMAND_SET_DEVICE_VOLUME = 25; //
0x19
field public static final int COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS = 33; //
0x21
field public static final int COMMAND_SET_MEDIA_ITEM = 31; // 0x1f
field @Deprecated public static final int COMMAND_SET_MEDIA_ITEMS_METADATA =
19; // 0x13
field public static final int COMMAND_SET_PLAYLIST_METADATA = 19; // 0x13
field public static final int COMMAND_SET_REPEAT_MODE = 15; // 0xf
field public static final int COMMAND_SET_SHUFFLE_MODE = 14; // 0xe
field public static final int COMMAND_SET_SPEED_AND_PITCH = 13; // 0xd
field public static final int COMMAND_SET_TRACK_SELECTION_PARAMETERS = 29; //
0x1d
field public static final int COMMAND_SET_VIDEO_SURFACE = 27; // 0x1b
field public static final int COMMAND_SET_VOLUME = 24; // 0x18
field public static final int COMMAND_STOP = 3; // 0x3
field public static final int DISCONTINUITY_REASON_AUTO_TRANSITION = 0; // 0x0
field public static final int DISCONTINUITY_REASON_INTERNAL = 5; // 0x5
field public static final int DISCONTINUITY_REASON_REMOVE = 4; // 0x4
field public static final int DISCONTINUITY_REASON_SEEK = 1; // 0x1
field public static final int DISCONTINUITY_REASON_SEEK_ADJUSTMENT = 2; // 0x2
field public static final int DISCONTINUITY_REASON_SILENCE_SKIP = 6; // 0x6
field public static final int DISCONTINUITY_REASON_SKIP = 3; // 0x3
field public static final int EVENT_AUDIO_ATTRIBUTES_CHANGED = 20; // 0x14
field public static final int EVENT_AUDIO_SESSION_ID = 21; // 0x15
field public static final int EVENT_AVAILABLE_COMMANDS_CHANGED = 13; // 0xd
field public static final int EVENT_CUES = 27; // 0x1b
field public static final int EVENT_DEVICE_INFO_CHANGED = 29; // 0x1d
field public static final int EVENT_DEVICE_VOLUME_CHANGED = 30; // 0x1e
field public static final int EVENT_IS_LOADING_CHANGED = 3; // 0x3
field public static final int EVENT_IS_PLAYING_CHANGED = 7; // 0x7
field public static final int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED = 18;
// 0x12
field public static final int EVENT_MEDIA_ITEM_TRANSITION = 1; // 0x1
field public static final int EVENT_MEDIA_METADATA_CHANGED = 14; // 0xe
field public static final int EVENT_METADATA = 28; // 0x1c
field public static final int EVENT_PLAYBACK_PARAMETERS_CHANGED = 12; // 0xc
field public static final int EVENT_PLAYBACK_STATE_CHANGED = 4; // 0x4
field public static final int EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED = 6; //
0x6
field public static final int EVENT_PLAYER_ERROR = 10; // 0xa
field public static final int EVENT_PLAYLIST_METADATA_CHANGED = 15; // 0xf
field public static final int EVENT_PLAY_WHEN_READY_CHANGED = 5; // 0x5
field public static final int EVENT_POSITION_DISCONTINUITY = 11; // 0xb
field public static final int EVENT_RENDERED_FIRST_FRAME = 26; // 0x1a
field public static final int EVENT_REPEAT_MODE_CHANGED = 8; // 0x8
field public static final int EVENT_SEEK_BACK_INCREMENT_CHANGED = 16; // 0x10
field public static final int EVENT_SEEK_FORWARD_INCREMENT_CHANGED = 17; //
0x11
field public static final int EVENT_SHUFFLE_MODE_ENABLED_CHANGED = 9; // 0x9
field public static final int EVENT_SKIP_SILENCE_ENABLED_CHANGED = 23; // 0x17
field public static final int EVENT_SURFACE_SIZE_CHANGED = 24; // 0x18
field public static final int EVENT_TIMELINE_CHANGED = 0; // 0x0
field public static final int EVENT_TRACKS_CHANGED = 2; // 0x2
field public static final int EVENT_TRACK_SELECTION_PARAMETERS_CHANGED = 19; //
0x13
field public static final int EVENT_VIDEO_SIZE_CHANGED = 25; // 0x19
field public static final int EVENT_VOLUME_CHANGED = 22; // 0x16
field public static final int MEDIA_ITEM_TRANSITION_REASON_AUTO = 1; // 0x1
field public static final int MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED =
3; // 0x3
field public static final int MEDIA_ITEM_TRANSITION_REASON_REPEAT = 0; // 0x0
field public static final int MEDIA_ITEM_TRANSITION_REASON_SEEK = 2; // 0x2
field public static final int PLAYBACK_SUPPRESSION_REASON_NONE = 0; // 0x0
field public static final int
PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS = 1; // 0x1
field public static final int
PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT = 3; // 0x3
field @Deprecated public static final int
PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_ROUTE = 2; // 0x2
field public static final int
PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY = 3; // 0x3
field public static final int PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS =
2; // 0x2
field public static final int PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM =
5; // 0x5
field public static final int PLAY_WHEN_READY_CHANGE_REASON_REMOTE = 4; // 0x4
field public static final int PLAY_WHEN_READY_CHANGE_REASON_SUPPRESSED_TOO_LONG
= 6; // 0x6
field public static final int PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST =
1; // 0x1
field public static final int REPEAT_MODE_ALL = 2; // 0x2
field public static final int REPEAT_MODE_OFF = 0; // 0x0
field public static final int REPEAT_MODE_ONE = 1; // 0x1
field public static final int STATE_BUFFERING = 2; // 0x2
field public static final int STATE_ENDED = 4; // 0x4
field public static final int STATE_IDLE = 1; // 0x1
field public static final int STATE_READY = 3; // 0x3
field public static final int TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED = 0; //
0x0
field public static final int TIMELINE_CHANGE_REASON_SOURCE_UPDATE = 1; // 0x1
}

@IntDef({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_AUDIO_ATTRIBUTES,
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,
androidx.media3.common.Player.DISCONTINUITY_REASON_SILENCE_SKIP})
@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.PlaybackSuppressi
onReason 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_LOS
S,
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<java.lang.Object,java.lang.Long>
getPeriodPositionUs(androidx.media3.common.Timeline.Window,
androidx.media3.common.Timeline.Period, int, long);
method @Nullable public final
android.util.Pair<java.lang.Object,java.lang.Long>
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<java.lang.Integer>);
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<java.lang.Integer>
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 @CallSuper public android.os.Bundle toBundle();
field public final com.google.common.collect.ImmutableSet<java.lang.Integer>
disabledTrackTypes;
field public final boolean forceHighestSupportedBitrate;
field public final boolean forceLowestBitrate;
field @androidx.media3.common.C.SelectionFlags public final int
ignoredTextSelectionFlags;
field public final int maxAudioBitrate;
field public final int maxAudioChannelCount;
field public final int maxVideoBitrate;
field public final int maxVideoFrameRate;
field public final int maxVideoHeight;
field public final int maxVideoWidth;
field public final int minVideoBitrate;
field public final int minVideoFrameRate;
field public final int minVideoHeight;
field public final int minVideoWidth;
field public final
com.google.common.collect.ImmutableMap<androidx.media3.common.TrackGroup,androidx.m
edia3.common.TrackSelectionOverride> overrides;
field public final com.google.common.collect.ImmutableList<java.lang.String>
preferredAudioLanguages;
field public final com.google.common.collect.ImmutableList<java.lang.String>
preferredAudioMimeTypes;
field @androidx.media3.common.C.RoleFlags public final int
preferredAudioRoleFlags;
field public final com.google.common.collect.ImmutableList<java.lang.String>
preferredTextLanguages;
field @androidx.media3.common.C.RoleFlags public final int
preferredTextRoleFlags;
field public final com.google.common.collect.ImmutableList<java.lang.String>
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
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.Con
text);
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<androidx.media3.common.Tracks.Group>
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 @Deprecated @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<androidx.media3.common.text.Cue> 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_OPE
N, 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 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 {

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();
}

public final class ImaServerSideAdInsertionMediaSource implements


androidx.media3.exoplayer.source.MediaSource {
}

public static final class ImaServerSideAdInsertionMediaSource.AdsLoader {


method public
androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource.AdsLoader.State
release();
method public void setPlayer(androidx.media3.common.Player);
}

public static final class ImaServerSideAdInsertionMediaSource.AdsLoader.Builder {


ctor public
ImaServerSideAdInsertionMediaSource.AdsLoader.Builder(android.content.Context,
androidx.media3.common.AdViewProvider);
method public
androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource.AdsLoader
build();
method public
androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource.AdsLoader.Builder
setAdsLoaderState(androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource
.AdsLoader.State);
}

public static class ImaServerSideAdInsertionMediaSource.AdsLoader.State {


method public static
androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource.AdsLoader.State
fromBundle(android.os.Bundle);
method public android.os.Bundle toBundle();
}

public static final class ImaServerSideAdInsertionMediaSource.Factory implements


androidx.media3.exoplayer.source.MediaSource.Factory {
ctor public
ImaServerSideAdInsertionMediaSource.Factory(androidx.media3.exoplayer.ima.ImaServer
SideAdInsertionMediaSource.AdsLoader,
androidx.media3.exoplayer.source.MediaSource.Factory);
}

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.Provid
er, androidx.media3.common.AdViewProvider);
method public androidx.media3.exoplayer.source.DefaultMediaSourceFactory
setServerSideAdInsertionMediaSourceFactory(@Nullable
androidx.media3.exoplayer.source.MediaSource.Factory);
}

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<V> {


method public static <V> androidx.media3.session.LibraryResult<V>
ofError(@androidx.media3.session.LibraryResult.Code int);
method public static <V> androidx.media3.session.LibraryResult<V>
ofError(@androidx.media3.session.LibraryResult.Code int, @Nullable
androidx.media3.session.MediaLibraryService.LibraryParams);
method public static
androidx.media3.session.LibraryResult<androidx.media3.common.MediaItem>
ofItem(androidx.media3.common.MediaItem, @Nullable
androidx.media3.session.MediaLibraryService.LibraryParams);
method public static
androidx.media3.session.LibraryResult<com.google.common.collect.ImmutableList<andro
idx.media3.common.MediaItem>>
ofItemList(java.util.List<androidx.media3.common.MediaItem>, @Nullable
androidx.media3.session.MediaLibraryService.LibraryParams);
method public static androidx.media3.session.LibraryResult<java.lang.Void>
ofVoid();
method public static androidx.media3.session.LibraryResult<java.lang.Void>
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.SessionError.INFO_CANCELLED,
androidx.media3.session.SessionError.ERROR_UNKNOWN,
androidx.media3.session.SessionError.ERROR_INVALID_STATE,
androidx.media3.session.SessionError.ERROR_BAD_VALUE,
androidx.media3.session.SessionError.ERROR_PERMISSION_DENIED,
androidx.media3.session.SessionError.ERROR_IO,
androidx.media3.session.SessionError.ERROR_SESSION_DISCONNECTED,
androidx.media3.session.SessionError.ERROR_NOT_SUPPORTED,
androidx.media3.session.SessionError.ERROR_SESSION_AUTHENTICATION_EXPIRED,
androidx.media3.session.SessionError.ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED,
androidx.media3.session.SessionError.ERROR_SESSION_CONCURRENT_STREAM_LIMIT,
androidx.media3.session.SessionError.ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED,
androidx.media3.session.SessionError.ERROR_SESSION_NOT_AVAILABLE_IN_REGION,
androidx.media3.session.SessionError.ERROR_SESSION_SKIP_LIMIT_REACHED,
androidx.media3.session.SessionError.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<androidx.media3.session.LibraryR
esult<com.google.common.collect.ImmutableList<androidx.media3.common.MediaItem>>>
getChildren(String, @IntRange(from=0) int, @IntRange(from=1) int, @Nullable
androidx.media3.session.MediaLibraryService.LibraryParams);
method public
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryR
esult<androidx.media3.common.MediaItem>> getItem(String);
method public
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryR
esult<androidx.media3.common.MediaItem>> getLibraryRoot(@Nullable
androidx.media3.session.MediaLibraryService.LibraryParams);
method public
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryR
esult<com.google.common.collect.ImmutableList<androidx.media3.common.MediaItem>>>
getSearchResult(String, @IntRange(from=0) int, @IntRange(from=1) int, @Nullable
androidx.media3.session.MediaLibraryService.LibraryParams);
method public
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryR
esult<java.lang.Void>> search(String, @Nullable
androidx.media3.session.MediaLibraryService.LibraryParams);
method public
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryR
esult<java.lang.Void>> subscribe(String, @Nullable
androidx.media3.session.MediaLibraryService.LibraryParams);
method public
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryR
esult<java.lang.Void>> 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<androidx.media3.session.MediaBro
wser> 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(int,
java.util.List<androidx.media3.common.MediaItem>);
method public final void
addMediaItems(java.util.List<androidx.media3.common.MediaItem>);
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);
method public final boolean
isSessionCommandAvailable(@androidx.media3.session.SessionCommand.CommandCode int);
method public final void moveMediaItem(int, int);
method public final void moveMediaItems(int, int, int);
method public final void pause();
method public final void play();
method public final void prepare();
method public final void release();
method public static void releaseFuture(java.util.concurrent.Future<? extends
androidx.media3.session.MediaController>);
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<androidx.media3.common.MediaItem>);
method public final void seekBack();
method public final void seekForward();
method public final void seekTo(int, long);
method public final void seekTo(long);
method public final void seekToDefaultPosition();
method public final void seekToDefaultPosition(int);
method public final void seekToNext();
method public final void seekToNextMediaItem();
method public final void seekToPrevious();
method public final void seekToPreviousMediaItem();
method public final
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.SessionR
esult> sendCustomCommand(androidx.media3.session.SessionCommand,
android.os.Bundle);
method public final void
setAudioAttributes(androidx.media3.common.AudioAttributes, boolean);
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,
boolean);
method public final void setMediaItem(androidx.media3.common.MediaItem, long);
method public final void
setMediaItems(java.util.List<androidx.media3.common.MediaItem>);
method public final void
setMediaItems(java.util.List<androidx.media3.common.MediaItem>, boolean);
method public final void
setMediaItems(java.util.List<androidx.media3.common.MediaItem>, 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<androidx.media3.session.SessionR
esult> setRating(androidx.media3.common.Rating);
method public final
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.SessionR
esult> setRating(String, 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<androidx.media3.session.MediaCon
troller> 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<androidx.media3.session.SessionR
esult> 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<androidx.media3.session.SessionR
esult> onSetCustomLayout(androidx.media3.session.MediaController,
java.util.List<androidx.media3.session.CommandButton>);
}

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.MediaLibrar
yService, 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<androidx.media3.session.LibraryR
esult<com.google.common.collect.ImmutableList<androidx.media3.common.MediaItem>>>
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<androidx.media3.session.LibraryR
esult<androidx.media3.common.MediaItem>>
onGetItem(androidx.media3.session.MediaLibraryService.MediaLibrarySession,
androidx.media3.session.MediaSession.ControllerInfo, String);
method public default
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryR
esult<androidx.media3.common.MediaItem>>
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<androidx.media3.session.LibraryR
esult<com.google.common.collect.ImmutableList<androidx.media3.common.MediaItem>>>
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<androidx.media3.session.LibraryR
esult<java.lang.Void>>
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<androidx.media3.session.LibraryR
esult<java.lang.Void>>
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<androidx.media3.session.LibraryR
esult<java.lang.Void>>
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<androidx.media3.session.MediaSession.ControllerInfo>
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<androidx.media3.session.SessionR
esult> 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<androidx.media3.session.SessionR
esult> setCustomLayout(androidx.media3.session.MediaSession.ControllerInfo,
java.util.List<androidx.media3.session.CommandButton>);
method public final void
setCustomLayout(java.util.List<androidx.media3.session.CommandButton>);
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<java.util.List<androidx.media3.c
ommon.MediaItem>> onAddMediaItems(androidx.media3.session.MediaSession,
androidx.media3.session.MediaSession.ControllerInfo,
java.util.List<androidx.media3.common.MediaItem>);
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<androidx.media3.session.SessionR
esult> 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<androidx.media3.session.SessionR
esult> onSetRating(androidx.media3.session.MediaSession,
androidx.media3.session.MediaSession.ControllerInfo,
androidx.media3.common.Rating);
method public default
com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.SessionR
esult> onSetRating(androidx.media3.session.MediaSession,
androidx.media3.session.MediaSession.ControllerInfo, String,
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 String LEGACY_CONTROLLER_PACKAGE_NAME =
"android.media.session.MediaController";
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<androidx.media3.session.MediaSession>
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<androidx.media3.session.SessionCommand>
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.Builder
addSessionCommands(java.util.Collection<androidx.media3.session.SessionCommand>);
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.SessionError.INFO_CANCELLED,
androidx.media3.session.SessionError.ERROR_UNKNOWN,
androidx.media3.session.SessionError.ERROR_INVALID_STATE,
androidx.media3.session.SessionError.ERROR_BAD_VALUE,
androidx.media3.session.SessionError.ERROR_PERMISSION_DENIED,
androidx.media3.session.SessionError.ERROR_IO,
androidx.media3.session.SessionError.ERROR_SESSION_DISCONNECTED,
androidx.media3.session.SessionError.ERROR_NOT_SUPPORTED,
androidx.media3.session.SessionError.ERROR_SESSION_AUTHENTICATION_EXPIRED,
androidx.media3.session.SessionError.ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED,
androidx.media3.session.SessionError.ERROR_SESSION_CONCURRENT_STREAM_LIMIT,
androidx.media3.session.SessionError.ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED,
androidx.media3.session.SessionError.ERROR_SESSION_NOT_AVAILABLE_IN_REGION,
androidx.media3.session.SessionError.ERROR_SESSION_SKIP_LIMIT_REACHED,
androidx.media3.session.SessionError.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<androidx.media3.session.SessionToken>
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<? super
androidx.media3.common.PlaybackException>);
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);
}

You might also like