media3/api.txt
tonihei b1cfeb04a0 Add Player.replaceMediaItem(s)
This methods allows to replace single items or a range of items directly
without using separate operations for add and remove. The advantage is
more readable code for apps and the potential for player
implementations to optimize this process (e.g. only replace values
without interrupting playback).

The current change just introduces the API with its default behavior.
The default logic will be removed again in the future in favor of
better logic in the Player implementations.

Issue: google/ExoPlayer#8046
PiperOrigin-RevId: 532151471
2023-05-16 09:55:53 +01:00

1888 lines
150 KiB
Plaintext

// Signature format: 3.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 @RequiresApi(21) public androidx.media3.common.AudioAttributes.AudioAttributesV21 getAudioAttributesV21();
field public static final androidx.media3.common.AudioAttributes DEFAULT;
field @androidx.media3.common.C.AudioAllowedCapturePolicy public final int allowedCapturePolicy;
field @androidx.media3.common.C.AudioContentType public final int contentType;
field @androidx.media3.common.C.AudioFlags public final int flags;
field @androidx.media3.common.C.SpatializationBehavior public final int spatializationBehavior;
field @androidx.media3.common.C.AudioUsage public final int usage;
}
@RequiresApi(21) public static final class AudioAttributes.AudioAttributesV21 {
field public final android.media.AudioAttributes audioAttributes;
}
public static final class AudioAttributes.Builder {
ctor public AudioAttributes.Builder();
method public androidx.media3.common.AudioAttributes build();
method public androidx.media3.common.AudioAttributes.Builder setAllowedCapturePolicy(@androidx.media3.common.C.AudioAllowedCapturePolicy int);
method public androidx.media3.common.AudioAttributes.Builder setContentType(@androidx.media3.common.C.AudioContentType int);
method public androidx.media3.common.AudioAttributes.Builder setFlags(@androidx.media3.common.C.AudioFlags int);
method public androidx.media3.common.AudioAttributes.Builder setSpatializationBehavior(@androidx.media3.common.C.SpatializationBehavior int);
method public androidx.media3.common.AudioAttributes.Builder setUsage(@androidx.media3.common.C.AudioUsage int);
}
public final class C {
field public static final int ALLOW_CAPTURE_BY_ALL = 1; // 0x1
field public static final int ALLOW_CAPTURE_BY_NONE = 3; // 0x3
field public static final int ALLOW_CAPTURE_BY_SYSTEM = 2; // 0x2
field public static final int AUDIO_CONTENT_TYPE_MOVIE = 3; // 0x3
field public static final int AUDIO_CONTENT_TYPE_MUSIC = 2; // 0x2
field public static final int AUDIO_CONTENT_TYPE_SONIFICATION = 4; // 0x4
field public static final int AUDIO_CONTENT_TYPE_SPEECH = 1; // 0x1
field public static final int AUDIO_CONTENT_TYPE_UNKNOWN = 0; // 0x0
field public static final java.util.UUID CLEARKEY_UUID;
field public static final java.util.UUID COMMON_PSSH_UUID;
field public static final int CONTENT_TYPE_DASH = 0; // 0x0
field public static final int CONTENT_TYPE_HLS = 2; // 0x2
field public static final int CONTENT_TYPE_OTHER = 4; // 0x4
field public static final int CONTENT_TYPE_RTSP = 3; // 0x3
field public static final int CONTENT_TYPE_SS = 1; // 0x1
field public static final int CRYPTO_TYPE_CUSTOM_BASE = 10000; // 0x2710
field public static final int CRYPTO_TYPE_FRAMEWORK = 2; // 0x2
field public static final int CRYPTO_TYPE_NONE = 0; // 0x0
field public static final int CRYPTO_TYPE_UNSUPPORTED = 1; // 0x1
field public static final long DEFAULT_MAX_SEEK_TO_PREVIOUS_POSITION_MS = 3000L; // 0xbb8L
field public static final long DEFAULT_SEEK_BACK_INCREMENT_MS = 5000L; // 0x1388L
field public static final long DEFAULT_SEEK_FORWARD_INCREMENT_MS = 15000L; // 0x3a98L
field public static final int FLAG_AUDIBILITY_ENFORCED = 1; // 0x1
field public static final int INDEX_UNSET = -1; // 0xffffffff
field public static final String LANGUAGE_UNDETERMINED = "und";
field public static final int LENGTH_UNSET = -1; // 0xffffffff
field public static final java.util.UUID PLAYREADY_UUID;
field public static final float RATE_UNSET = -3.4028235E38f;
field public static final int ROLE_FLAG_ALTERNATE = 2; // 0x2
field public static final int ROLE_FLAG_CAPTION = 64; // 0x40
field public static final int ROLE_FLAG_COMMENTARY = 8; // 0x8
field public static final int ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND = 1024; // 0x400
field public static final int ROLE_FLAG_DESCRIBES_VIDEO = 512; // 0x200
field public static final int ROLE_FLAG_DUB = 16; // 0x10
field public static final int ROLE_FLAG_EASY_TO_READ = 8192; // 0x2000
field public static final int ROLE_FLAG_EMERGENCY = 32; // 0x20
field public static final int ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY = 2048; // 0x800
field public static final int ROLE_FLAG_MAIN = 1; // 0x1
field public static final int ROLE_FLAG_SIGN = 256; // 0x100
field public static final int ROLE_FLAG_SUBTITLE = 128; // 0x80
field public static final int ROLE_FLAG_SUPPLEMENTARY = 4; // 0x4
field public static final int ROLE_FLAG_TRANSCRIBES_DIALOG = 4096; // 0x1000
field public static final int ROLE_FLAG_TRICK_PLAY = 16384; // 0x4000
field public static final int SELECTION_FLAG_AUTOSELECT = 4; // 0x4
field public static final int SELECTION_FLAG_DEFAULT = 1; // 0x1
field public static final int SELECTION_FLAG_FORCED = 2; // 0x2
field public static final int SPATIALIZATION_BEHAVIOR_AUTO = 0; // 0x0
field public static final int SPATIALIZATION_BEHAVIOR_NEVER = 1; // 0x1
field public static final long TIME_END_OF_SOURCE = -9223372036854775808L; // 0x8000000000000000L
field public static final long TIME_UNSET = -9223372036854775807L; // 0x8000000000000001L
field public static final int TRACK_TYPE_AUDIO = 1; // 0x1
field public static final int TRACK_TYPE_CAMERA_MOTION = 6; // 0x6
field public static final int TRACK_TYPE_CUSTOM_BASE = 10000; // 0x2710
field public static final int TRACK_TYPE_DEFAULT = 0; // 0x0
field public static final int TRACK_TYPE_IMAGE = 4; // 0x4
field public static final int TRACK_TYPE_METADATA = 5; // 0x5
field public static final int TRACK_TYPE_NONE = -2; // 0xfffffffe
field public static final int TRACK_TYPE_TEXT = 3; // 0x3
field public static final int TRACK_TYPE_UNKNOWN = -1; // 0xffffffff
field public static final int TRACK_TYPE_VIDEO = 2; // 0x2
field public static final int USAGE_ALARM = 4; // 0x4
field public static final int USAGE_ASSISTANCE_ACCESSIBILITY = 11; // 0xb
field public static final int USAGE_ASSISTANCE_NAVIGATION_GUIDANCE = 12; // 0xc
field public static final int USAGE_ASSISTANCE_SONIFICATION = 13; // 0xd
field public static final int USAGE_ASSISTANT = 16; // 0x10
field public static final int USAGE_GAME = 14; // 0xe
field public static final int USAGE_MEDIA = 1; // 0x1
field public static final int USAGE_NOTIFICATION = 5; // 0x5
field public static final int USAGE_NOTIFICATION_COMMUNICATION_DELAYED = 9; // 0x9
field public static final int USAGE_NOTIFICATION_COMMUNICATION_INSTANT = 8; // 0x8
field public static final int USAGE_NOTIFICATION_COMMUNICATION_REQUEST = 7; // 0x7
field public static final int USAGE_NOTIFICATION_EVENT = 10; // 0xa
field public static final int USAGE_NOTIFICATION_RINGTONE = 6; // 0x6
field public static final int USAGE_UNKNOWN = 0; // 0x0
field public static final int USAGE_VOICE_COMMUNICATION = 2; // 0x2
field public static final int USAGE_VOICE_COMMUNICATION_SIGNALLING = 3; // 0x3
field public static final java.util.UUID UUID_NIL;
field public static final int VOLUME_FLAG_ALLOW_RINGER_MODES = 2; // 0x2
field public static final int VOLUME_FLAG_PLAY_SOUND = 4; // 0x4
field public static final int VOLUME_FLAG_REMOVE_SOUND_AND_VIBRATE = 8; // 0x8
field public static final int VOLUME_FLAG_SHOW_UI = 1; // 0x1
field public static final int VOLUME_FLAG_VIBRATE = 16; // 0x10
field public static final int WAKE_MODE_LOCAL = 1; // 0x1
field public static final int WAKE_MODE_NETWORK = 2; // 0x2
field public static final int WAKE_MODE_NONE = 0; // 0x0
field public static final java.util.UUID WIDEVINE_UUID;
}
@IntDef({androidx.media3.common.C.ALLOW_CAPTURE_BY_ALL, androidx.media3.common.C.ALLOW_CAPTURE_BY_NONE, androidx.media3.common.C.ALLOW_CAPTURE_BY_SYSTEM}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.AudioAllowedCapturePolicy {
}
@IntDef({androidx.media3.common.C.AUDIO_CONTENT_TYPE_MOVIE, androidx.media3.common.C.AUDIO_CONTENT_TYPE_MUSIC, androidx.media3.common.C.AUDIO_CONTENT_TYPE_SONIFICATION, androidx.media3.common.C.AUDIO_CONTENT_TYPE_SPEECH, androidx.media3.common.C.AUDIO_CONTENT_TYPE_UNKNOWN}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.AudioContentType {
}
@IntDef(flag=true, value={androidx.media3.common.C.FLAG_AUDIBILITY_ENFORCED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.AudioFlags {
}
@IntDef({androidx.media3.common.C.USAGE_ALARM, androidx.media3.common.C.USAGE_ASSISTANCE_ACCESSIBILITY, androidx.media3.common.C.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, androidx.media3.common.C.USAGE_ASSISTANCE_SONIFICATION, androidx.media3.common.C.USAGE_ASSISTANT, androidx.media3.common.C.USAGE_GAME, androidx.media3.common.C.USAGE_MEDIA, androidx.media3.common.C.USAGE_NOTIFICATION, androidx.media3.common.C.USAGE_NOTIFICATION_COMMUNICATION_DELAYED, androidx.media3.common.C.USAGE_NOTIFICATION_COMMUNICATION_INSTANT, androidx.media3.common.C.USAGE_NOTIFICATION_COMMUNICATION_REQUEST, androidx.media3.common.C.USAGE_NOTIFICATION_EVENT, androidx.media3.common.C.USAGE_NOTIFICATION_RINGTONE, androidx.media3.common.C.USAGE_UNKNOWN, androidx.media3.common.C.USAGE_VOICE_COMMUNICATION, androidx.media3.common.C.USAGE_VOICE_COMMUNICATION_SIGNALLING}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.AudioUsage {
}
@IntDef({androidx.media3.common.C.CONTENT_TYPE_DASH, androidx.media3.common.C.CONTENT_TYPE_SS, androidx.media3.common.C.CONTENT_TYPE_HLS, androidx.media3.common.C.CONTENT_TYPE_RTSP, androidx.media3.common.C.CONTENT_TYPE_OTHER}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.ContentType {
}
@IntDef(open=true, value={androidx.media3.common.C.CRYPTO_TYPE_UNSUPPORTED, androidx.media3.common.C.CRYPTO_TYPE_NONE, androidx.media3.common.C.CRYPTO_TYPE_FRAMEWORK}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface C.CryptoType {
}
@IntDef(flag=true, value={androidx.media3.common.C.ROLE_FLAG_MAIN, androidx.media3.common.C.ROLE_FLAG_ALTERNATE, androidx.media3.common.C.ROLE_FLAG_SUPPLEMENTARY, androidx.media3.common.C.ROLE_FLAG_COMMENTARY, androidx.media3.common.C.ROLE_FLAG_DUB, androidx.media3.common.C.ROLE_FLAG_EMERGENCY, androidx.media3.common.C.ROLE_FLAG_CAPTION, androidx.media3.common.C.ROLE_FLAG_SUBTITLE, androidx.media3.common.C.ROLE_FLAG_SIGN, androidx.media3.common.C.ROLE_FLAG_DESCRIBES_VIDEO, androidx.media3.common.C.ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND, androidx.media3.common.C.ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY, androidx.media3.common.C.ROLE_FLAG_TRANSCRIBES_DIALOG, androidx.media3.common.C.ROLE_FLAG_EASY_TO_READ, androidx.media3.common.C.ROLE_FLAG_TRICK_PLAY}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.RoleFlags {
}
@IntDef(flag=true, value={androidx.media3.common.C.SELECTION_FLAG_DEFAULT, androidx.media3.common.C.SELECTION_FLAG_FORCED, androidx.media3.common.C.SELECTION_FLAG_AUTOSELECT}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.SelectionFlags {
}
@IntDef({androidx.media3.common.C.SPATIALIZATION_BEHAVIOR_AUTO, androidx.media3.common.C.SPATIALIZATION_BEHAVIOR_NEVER}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface C.SpatializationBehavior {
}
@IntDef(open=true, value={androidx.media3.common.C.TRACK_TYPE_UNKNOWN, androidx.media3.common.C.TRACK_TYPE_DEFAULT, androidx.media3.common.C.TRACK_TYPE_AUDIO, androidx.media3.common.C.TRACK_TYPE_VIDEO, androidx.media3.common.C.TRACK_TYPE_TEXT, androidx.media3.common.C.TRACK_TYPE_IMAGE, androidx.media3.common.C.TRACK_TYPE_METADATA, androidx.media3.common.C.TRACK_TYPE_CAMERA_MOTION, androidx.media3.common.C.TRACK_TYPE_NONE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface C.TrackType {
}
@IntDef(flag=true, value={androidx.media3.common.C.VOLUME_FLAG_SHOW_UI, androidx.media3.common.C.VOLUME_FLAG_ALLOW_RINGER_MODES, androidx.media3.common.C.VOLUME_FLAG_PLAY_SOUND, androidx.media3.common.C.VOLUME_FLAG_REMOVE_SOUND_AND_VIBRATE, androidx.media3.common.C.VOLUME_FLAG_VIBRATE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.VolumeFlags {
}
@IntDef({androidx.media3.common.C.WAKE_MODE_NONE, androidx.media3.common.C.WAKE_MODE_LOCAL, androidx.media3.common.C.WAKE_MODE_NETWORK}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface C.WakeMode {
}
public final class DeviceInfo {
field public static final int PLAYBACK_TYPE_LOCAL = 0; // 0x0
field public static final int PLAYBACK_TYPE_REMOTE = 1; // 0x1
field public static final androidx.media3.common.DeviceInfo UNKNOWN;
field @IntRange(from=0) public final int maxVolume;
field @IntRange(from=0) public final int minVolume;
field @androidx.media3.common.DeviceInfo.PlaybackType public final int playbackType;
field @Nullable public final String routingControllerId;
}
public static final class DeviceInfo.Builder {
ctor public DeviceInfo.Builder(@androidx.media3.common.DeviceInfo.PlaybackType int);
method public androidx.media3.common.DeviceInfo build();
method public androidx.media3.common.DeviceInfo.Builder setMaxVolume(@IntRange(from=0) int);
method public androidx.media3.common.DeviceInfo.Builder setMinVolume(@IntRange(from=0) int);
method public androidx.media3.common.DeviceInfo.Builder setRoutingControllerId(@Nullable String);
}
@IntDef({androidx.media3.common.DeviceInfo.PLAYBACK_TYPE_LOCAL, androidx.media3.common.DeviceInfo.PLAYBACK_TYPE_REMOTE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface DeviceInfo.PlaybackType {
}
public interface ErrorMessageProvider<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(String);
method public static androidx.media3.common.MediaItem fromUri(android.net.Uri);
field public static final String DEFAULT_MEDIA_ID = "";
field public static final androidx.media3.common.MediaItem EMPTY;
field public final androidx.media3.common.MediaItem.ClippingConfiguration clippingConfiguration;
field public final androidx.media3.common.MediaItem.LiveConfiguration liveConfiguration;
field @Nullable public final androidx.media3.common.MediaItem.LocalConfiguration localConfiguration;
field public final String mediaId;
field public final androidx.media3.common.MediaMetadata mediaMetadata;
field public final androidx.media3.common.MediaItem.RequestMetadata requestMetadata;
}
public static final class MediaItem.AdsConfiguration {
method public androidx.media3.common.MediaItem.AdsConfiguration.Builder buildUpon();
field public final android.net.Uri adTagUri;
field @Nullable public final Object adsId;
}
public static final class MediaItem.AdsConfiguration.Builder {
ctor public MediaItem.AdsConfiguration.Builder(android.net.Uri);
method public androidx.media3.common.MediaItem.AdsConfiguration build();
method public androidx.media3.common.MediaItem.AdsConfiguration.Builder setAdTagUri(android.net.Uri);
method public androidx.media3.common.MediaItem.AdsConfiguration.Builder setAdsId(@Nullable Object);
}
public static final class MediaItem.Builder {
ctor public MediaItem.Builder();
method public androidx.media3.common.MediaItem build();
method public androidx.media3.common.MediaItem.Builder setAdsConfiguration(@Nullable androidx.media3.common.MediaItem.AdsConfiguration);
method public androidx.media3.common.MediaItem.Builder setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration);
method public androidx.media3.common.MediaItem.Builder setDrmConfiguration(@Nullable androidx.media3.common.MediaItem.DrmConfiguration);
method public androidx.media3.common.MediaItem.Builder setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration);
method public androidx.media3.common.MediaItem.Builder setMediaId(String);
method public androidx.media3.common.MediaItem.Builder setMediaMetadata(androidx.media3.common.MediaMetadata);
method public androidx.media3.common.MediaItem.Builder setMimeType(@Nullable String);
method public androidx.media3.common.MediaItem.Builder setRequestMetadata(androidx.media3.common.MediaItem.RequestMetadata);
method public androidx.media3.common.MediaItem.Builder setSubtitleConfigurations(java.util.List<androidx.media3.common.MediaItem.SubtitleConfiguration>);
method public androidx.media3.common.MediaItem.Builder setTag(@Nullable Object);
method public androidx.media3.common.MediaItem.Builder setUri(@Nullable String);
method public androidx.media3.common.MediaItem.Builder setUri(@Nullable android.net.Uri);
}
public static class MediaItem.ClippingConfiguration {
method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder buildUpon();
field public static final androidx.media3.common.MediaItem.ClippingConfiguration UNSET;
field public final long endPositionMs;
field public final boolean relativeToDefaultPosition;
field public final boolean relativeToLiveWindow;
field @IntRange(from=0) public final long startPositionMs;
field public final boolean startsAtKeyFrame;
}
public static final class MediaItem.ClippingConfiguration.Builder {
ctor public MediaItem.ClippingConfiguration.Builder();
method public androidx.media3.common.MediaItem.ClippingConfiguration build();
method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setEndPositionMs(long);
method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setRelativeToDefaultPosition(boolean);
method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setRelativeToLiveWindow(boolean);
method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setStartPositionMs(@IntRange(from=0) long);
method public androidx.media3.common.MediaItem.ClippingConfiguration.Builder setStartsAtKeyFrame(boolean);
}
public static final class MediaItem.DrmConfiguration {
method public androidx.media3.common.MediaItem.DrmConfiguration.Builder buildUpon();
method @Nullable public byte[] getKeySetId();
field public final boolean forceDefaultLicenseUri;
field public final com.google.common.collect.ImmutableList<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 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.SubtitleConfiguration> subtitleConfigurations;
field @Nullable public final Object tag;
field public final android.net.Uri uri;
}
public static final class MediaItem.RequestMetadata {
method public androidx.media3.common.MediaItem.RequestMetadata.Builder buildUpon();
field public static final androidx.media3.common.MediaItem.RequestMetadata EMPTY;
field @Nullable public final android.os.Bundle extras;
field @Nullable public final android.net.Uri mediaUri;
field @Nullable public final String searchQuery;
}
public static final class MediaItem.RequestMetadata.Builder {
ctor public MediaItem.RequestMetadata.Builder();
method public androidx.media3.common.MediaItem.RequestMetadata build();
method public androidx.media3.common.MediaItem.RequestMetadata.Builder setExtras(@Nullable android.os.Bundle);
method public androidx.media3.common.MediaItem.RequestMetadata.Builder setMediaUri(@Nullable android.net.Uri);
method public androidx.media3.common.MediaItem.RequestMetadata.Builder setSearchQuery(@Nullable String);
}
public static class MediaItem.SubtitleConfiguration {
method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder buildUpon();
field @Nullable public final String id;
field @Nullable public final String label;
field @Nullable public final String language;
field @Nullable public final String mimeType;
field @androidx.media3.common.C.RoleFlags public final int roleFlags;
field @androidx.media3.common.C.SelectionFlags public final int selectionFlags;
field public final android.net.Uri uri;
}
public static final class MediaItem.SubtitleConfiguration.Builder {
ctor public MediaItem.SubtitleConfiguration.Builder(android.net.Uri);
method public androidx.media3.common.MediaItem.SubtitleConfiguration build();
method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setId(@Nullable String);
method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setLabel(@Nullable String);
method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setLanguage(@Nullable String);
method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setMimeType(@Nullable String);
method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setRoleFlags(@androidx.media3.common.C.RoleFlags int);
method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setSelectionFlags(@androidx.media3.common.C.SelectionFlags int);
method public androidx.media3.common.MediaItem.SubtitleConfiguration.Builder setUri(android.net.Uri);
}
public final class MediaMetadata {
method public androidx.media3.common.MediaMetadata.Builder buildUpon();
field public static final androidx.media3.common.MediaMetadata EMPTY;
field @Deprecated public static final int FOLDER_TYPE_ALBUMS = 2; // 0x2
field @Deprecated public static final int FOLDER_TYPE_ARTISTS = 3; // 0x3
field @Deprecated public static final int FOLDER_TYPE_GENRES = 4; // 0x4
field @Deprecated public static final int FOLDER_TYPE_MIXED = 0; // 0x0
field @Deprecated public static final int FOLDER_TYPE_NONE = -1; // 0xffffffff
field @Deprecated public static final int FOLDER_TYPE_PLAYLISTS = 5; // 0x5
field @Deprecated public static final int FOLDER_TYPE_TITLES = 1; // 0x1
field @Deprecated public static final int FOLDER_TYPE_YEARS = 6; // 0x6
field public static final int MEDIA_TYPE_ALBUM = 10; // 0xa
field public static final int MEDIA_TYPE_ARTIST = 11; // 0xb
field public static final int MEDIA_TYPE_AUDIO_BOOK = 15; // 0xf
field public static final int MEDIA_TYPE_AUDIO_BOOK_CHAPTER = 2; // 0x2
field public static final int MEDIA_TYPE_FOLDER_ALBUMS = 21; // 0x15
field public static final int MEDIA_TYPE_FOLDER_ARTISTS = 22; // 0x16
field public static final int MEDIA_TYPE_FOLDER_AUDIO_BOOKS = 26; // 0x1a
field public static final int MEDIA_TYPE_FOLDER_GENRES = 23; // 0x17
field public static final int MEDIA_TYPE_FOLDER_MIXED = 20; // 0x14
field public static final int MEDIA_TYPE_FOLDER_MOVIES = 35; // 0x23
field public static final int MEDIA_TYPE_FOLDER_NEWS = 32; // 0x20
field public static final int MEDIA_TYPE_FOLDER_PLAYLISTS = 24; // 0x18
field public static final int MEDIA_TYPE_FOLDER_PODCASTS = 27; // 0x1b
field public static final int MEDIA_TYPE_FOLDER_RADIO_STATIONS = 31; // 0x1f
field public static final int MEDIA_TYPE_FOLDER_TRAILERS = 34; // 0x22
field public static final int MEDIA_TYPE_FOLDER_TV_CHANNELS = 28; // 0x1c
field public static final int MEDIA_TYPE_FOLDER_TV_SERIES = 29; // 0x1d
field public static final int MEDIA_TYPE_FOLDER_TV_SHOWS = 30; // 0x1e
field public static final int MEDIA_TYPE_FOLDER_VIDEOS = 33; // 0x21
field public static final int MEDIA_TYPE_FOLDER_YEARS = 25; // 0x19
field public static final int MEDIA_TYPE_GENRE = 12; // 0xc
field public static final int MEDIA_TYPE_MIXED = 0; // 0x0
field public static final int MEDIA_TYPE_MOVIE = 8; // 0x8
field public static final int MEDIA_TYPE_MUSIC = 1; // 0x1
field public static final int MEDIA_TYPE_NEWS = 5; // 0x5
field public static final int MEDIA_TYPE_PLAYLIST = 13; // 0xd
field public static final int MEDIA_TYPE_PODCAST = 16; // 0x10
field public static final int MEDIA_TYPE_PODCAST_EPISODE = 3; // 0x3
field public static final int MEDIA_TYPE_RADIO_STATION = 4; // 0x4
field public static final int MEDIA_TYPE_TRAILER = 7; // 0x7
field public static final int MEDIA_TYPE_TV_CHANNEL = 17; // 0x11
field public static final int MEDIA_TYPE_TV_SEASON = 19; // 0x13
field public static final int MEDIA_TYPE_TV_SERIES = 18; // 0x12
field public static final int MEDIA_TYPE_TV_SHOW = 9; // 0x9
field public static final int MEDIA_TYPE_VIDEO = 6; // 0x6
field public static final int MEDIA_TYPE_YEAR = 14; // 0xe
field public static final int PICTURE_TYPE_ARTIST_PERFORMER = 8; // 0x8
field public static final int PICTURE_TYPE_A_BRIGHT_COLORED_FISH = 17; // 0x11
field public static final int PICTURE_TYPE_BACK_COVER = 4; // 0x4
field public static final int PICTURE_TYPE_BAND_ARTIST_LOGO = 19; // 0x13
field public static final int PICTURE_TYPE_BAND_ORCHESTRA = 10; // 0xa
field public static final int PICTURE_TYPE_COMPOSER = 11; // 0xb
field public static final int PICTURE_TYPE_CONDUCTOR = 9; // 0x9
field public static final int PICTURE_TYPE_DURING_PERFORMANCE = 15; // 0xf
field public static final int PICTURE_TYPE_DURING_RECORDING = 14; // 0xe
field public static final int PICTURE_TYPE_FILE_ICON = 1; // 0x1
field public static final int PICTURE_TYPE_FILE_ICON_OTHER = 2; // 0x2
field public static final int PICTURE_TYPE_FRONT_COVER = 3; // 0x3
field public static final int PICTURE_TYPE_ILLUSTRATION = 18; // 0x12
field public static final int PICTURE_TYPE_LEAD_ARTIST_PERFORMER = 7; // 0x7
field public static final int PICTURE_TYPE_LEAFLET_PAGE = 5; // 0x5
field public static final int PICTURE_TYPE_LYRICIST = 12; // 0xc
field public static final int PICTURE_TYPE_MEDIA = 6; // 0x6
field public static final int PICTURE_TYPE_MOVIE_VIDEO_SCREEN_CAPTURE = 16; // 0x10
field public static final int PICTURE_TYPE_OTHER = 0; // 0x0
field public static final int PICTURE_TYPE_PUBLISHER_STUDIO_LOGO = 20; // 0x14
field public static final int PICTURE_TYPE_RECORDING_LOCATION = 13; // 0xd
field @Nullable public final CharSequence albumArtist;
field @Nullable public final CharSequence albumTitle;
field @Nullable public final CharSequence artist;
field @Nullable public final byte[] artworkData;
field @Nullable @androidx.media3.common.MediaMetadata.PictureType public final Integer artworkDataType;
field @Nullable public final android.net.Uri artworkUri;
field @Nullable public final CharSequence compilation;
field @Nullable public final CharSequence composer;
field @Nullable public final CharSequence conductor;
field @Nullable public final CharSequence description;
field @Nullable public final Integer discNumber;
field @Nullable public final CharSequence displayTitle;
field @Nullable public final android.os.Bundle extras;
field @Deprecated @Nullable @androidx.media3.common.MediaMetadata.FolderType public final Integer folderType;
field @Nullable public final CharSequence genre;
field @Nullable public final Boolean isBrowsable;
field @Nullable public final Boolean isPlayable;
field @Nullable @androidx.media3.common.MediaMetadata.MediaType public final Integer mediaType;
field @Nullable public final androidx.media3.common.Rating overallRating;
field @Nullable public final Integer recordingDay;
field @Nullable public final Integer recordingMonth;
field @Nullable public final Integer recordingYear;
field @Nullable public final Integer releaseDay;
field @Nullable public final Integer releaseMonth;
field @Nullable public final Integer releaseYear;
field @Nullable public final CharSequence station;
field @Nullable public final CharSequence subtitle;
field @Nullable public final CharSequence title;
field @Nullable public final Integer totalDiscCount;
field @Nullable public final Integer totalTrackCount;
field @Nullable public final Integer trackNumber;
field @Nullable public final androidx.media3.common.Rating userRating;
field @Nullable public final CharSequence writer;
}
public static final class MediaMetadata.Builder {
ctor public MediaMetadata.Builder();
method public androidx.media3.common.MediaMetadata build();
method public androidx.media3.common.MediaMetadata.Builder maybeSetArtworkData(byte[], @androidx.media3.common.MediaMetadata.PictureType int);
method public androidx.media3.common.MediaMetadata.Builder setAlbumArtist(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setAlbumTitle(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setArtist(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setArtworkData(@Nullable byte[], @Nullable @androidx.media3.common.MediaMetadata.PictureType Integer);
method public androidx.media3.common.MediaMetadata.Builder setArtworkUri(@Nullable android.net.Uri);
method public androidx.media3.common.MediaMetadata.Builder setCompilation(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setComposer(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setConductor(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setDescription(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setDiscNumber(@Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setDisplayTitle(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setExtras(@Nullable android.os.Bundle);
method @Deprecated public androidx.media3.common.MediaMetadata.Builder setFolderType(@Nullable @androidx.media3.common.MediaMetadata.FolderType Integer);
method public androidx.media3.common.MediaMetadata.Builder setGenre(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setIsBrowsable(@Nullable Boolean);
method public androidx.media3.common.MediaMetadata.Builder setIsPlayable(@Nullable Boolean);
method public androidx.media3.common.MediaMetadata.Builder setMediaType(@Nullable @androidx.media3.common.MediaMetadata.MediaType Integer);
method public androidx.media3.common.MediaMetadata.Builder setOverallRating(@Nullable androidx.media3.common.Rating);
method public androidx.media3.common.MediaMetadata.Builder setRecordingDay(@IntRange(from=1, to=31) @Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setRecordingMonth(@IntRange(from=1, to=12) @Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setRecordingYear(@Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setReleaseDay(@IntRange(from=1, to=31) @Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setReleaseMonth(@IntRange(from=1, to=12) @Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setReleaseYear(@Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setStation(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setSubtitle(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setTitle(@Nullable CharSequence);
method public androidx.media3.common.MediaMetadata.Builder setTotalDiscCount(@Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setTotalTrackCount(@Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setTrackNumber(@Nullable Integer);
method public androidx.media3.common.MediaMetadata.Builder setUserRating(@Nullable androidx.media3.common.Rating);
method public androidx.media3.common.MediaMetadata.Builder setWriter(@Nullable CharSequence);
}
@Deprecated @IntDef({androidx.media3.common.MediaMetadata.FOLDER_TYPE_NONE, androidx.media3.common.MediaMetadata.FOLDER_TYPE_MIXED, androidx.media3.common.MediaMetadata.FOLDER_TYPE_TITLES, androidx.media3.common.MediaMetadata.FOLDER_TYPE_ALBUMS, androidx.media3.common.MediaMetadata.FOLDER_TYPE_ARTISTS, androidx.media3.common.MediaMetadata.FOLDER_TYPE_GENRES, androidx.media3.common.MediaMetadata.FOLDER_TYPE_PLAYLISTS, androidx.media3.common.MediaMetadata.FOLDER_TYPE_YEARS}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface MediaMetadata.FolderType {
}
@IntDef({androidx.media3.common.MediaMetadata.MEDIA_TYPE_MIXED, androidx.media3.common.MediaMetadata.MEDIA_TYPE_MUSIC, androidx.media3.common.MediaMetadata.MEDIA_TYPE_AUDIO_BOOK_CHAPTER, androidx.media3.common.MediaMetadata.MEDIA_TYPE_PODCAST_EPISODE, androidx.media3.common.MediaMetadata.MEDIA_TYPE_RADIO_STATION, androidx.media3.common.MediaMetadata.MEDIA_TYPE_NEWS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_VIDEO, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TRAILER, androidx.media3.common.MediaMetadata.MEDIA_TYPE_MOVIE, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TV_SHOW, androidx.media3.common.MediaMetadata.MEDIA_TYPE_ALBUM, androidx.media3.common.MediaMetadata.MEDIA_TYPE_ARTIST, androidx.media3.common.MediaMetadata.MEDIA_TYPE_GENRE, androidx.media3.common.MediaMetadata.MEDIA_TYPE_PLAYLIST, androidx.media3.common.MediaMetadata.MEDIA_TYPE_YEAR, androidx.media3.common.MediaMetadata.MEDIA_TYPE_AUDIO_BOOK, androidx.media3.common.MediaMetadata.MEDIA_TYPE_PODCAST, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TV_CHANNEL, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TV_SERIES, androidx.media3.common.MediaMetadata.MEDIA_TYPE_TV_SEASON, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_MIXED, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_ALBUMS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_ARTISTS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_GENRES, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_PLAYLISTS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_YEARS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_AUDIO_BOOKS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_PODCASTS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_TV_CHANNELS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_TV_SERIES, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_TV_SHOWS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_RADIO_STATIONS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_NEWS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_VIDEOS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_TRAILERS, androidx.media3.common.MediaMetadata.MEDIA_TYPE_FOLDER_MOVIES}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface MediaMetadata.MediaType {
}
@IntDef({androidx.media3.common.MediaMetadata.PICTURE_TYPE_OTHER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_FILE_ICON, androidx.media3.common.MediaMetadata.PICTURE_TYPE_FILE_ICON_OTHER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_FRONT_COVER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_BACK_COVER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_LEAFLET_PAGE, androidx.media3.common.MediaMetadata.PICTURE_TYPE_MEDIA, androidx.media3.common.MediaMetadata.PICTURE_TYPE_LEAD_ARTIST_PERFORMER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_ARTIST_PERFORMER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_CONDUCTOR, androidx.media3.common.MediaMetadata.PICTURE_TYPE_BAND_ORCHESTRA, androidx.media3.common.MediaMetadata.PICTURE_TYPE_COMPOSER, androidx.media3.common.MediaMetadata.PICTURE_TYPE_LYRICIST, androidx.media3.common.MediaMetadata.PICTURE_TYPE_RECORDING_LOCATION, androidx.media3.common.MediaMetadata.PICTURE_TYPE_DURING_RECORDING, androidx.media3.common.MediaMetadata.PICTURE_TYPE_DURING_PERFORMANCE, androidx.media3.common.MediaMetadata.PICTURE_TYPE_MOVIE_VIDEO_SCREEN_CAPTURE, androidx.media3.common.MediaMetadata.PICTURE_TYPE_A_BRIGHT_COLORED_FISH, androidx.media3.common.MediaMetadata.PICTURE_TYPE_ILLUSTRATION, androidx.media3.common.MediaMetadata.PICTURE_TYPE_BAND_ARTIST_LOGO, androidx.media3.common.MediaMetadata.PICTURE_TYPE_PUBLISHER_STUDIO_LOGO}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface MediaMetadata.PictureType {
}
public final class MimeTypes {
field public static final String APPLICATION_AIT = "application/vnd.dvb.ait";
field public static final String APPLICATION_CEA608 = "application/cea-608";
field public static final String APPLICATION_CEA708 = "application/cea-708";
field public static final String APPLICATION_DVBSUBS = "application/dvbsubs";
field public static final String APPLICATION_ID3 = "application/id3";
field public static final String APPLICATION_M3U8 = "application/x-mpegURL";
field public static final String APPLICATION_MATROSKA = "application/x-matroska";
field public static final String APPLICATION_MP4 = "application/mp4";
field public static final String APPLICATION_MP4CEA608 = "application/x-mp4-cea-608";
field public static final String APPLICATION_MP4VTT = "application/x-mp4-vtt";
field public static final String APPLICATION_MPD = "application/dash+xml";
field public static final String APPLICATION_PGS = "application/pgs";
field @Deprecated public static final String APPLICATION_RAWCC = "application/x-rawcc";
field public static final String APPLICATION_RTSP = "application/x-rtsp";
field public static final String APPLICATION_SS = "application/vnd.ms-sstr+xml";
field public static final String APPLICATION_SUBRIP = "application/x-subrip";
field public static final String APPLICATION_TTML = "application/ttml+xml";
field public static final String APPLICATION_TX3G = "application/x-quicktime-tx3g";
field public static final String APPLICATION_VOBSUB = "application/vobsub";
field public static final String APPLICATION_WEBM = "application/webm";
field public static final String AUDIO_AAC = "audio/mp4a-latm";
field public static final String AUDIO_AC3 = "audio/ac3";
field public static final String AUDIO_AC4 = "audio/ac4";
field public static final String AUDIO_ALAC = "audio/alac";
field public static final String AUDIO_ALAW = "audio/g711-alaw";
field public static final String AUDIO_AMR = "audio/amr";
field public static final String AUDIO_AMR_NB = "audio/3gpp";
field public static final String AUDIO_AMR_WB = "audio/amr-wb";
field public static final String AUDIO_DTS = "audio/vnd.dts";
field public static final String AUDIO_DTS_EXPRESS = "audio/vnd.dts.hd;profile=lbr";
field public static final String AUDIO_DTS_HD = "audio/vnd.dts.hd";
field public static final String AUDIO_E_AC3 = "audio/eac3";
field public static final String AUDIO_E_AC3_JOC = "audio/eac3-joc";
field public static final String AUDIO_FLAC = "audio/flac";
field public static final String AUDIO_MIDI = "audio/midi";
field public static final String AUDIO_MLAW = "audio/g711-mlaw";
field public static final String AUDIO_MP4 = "audio/mp4";
field public static final String AUDIO_MPEG = "audio/mpeg";
field public static final String AUDIO_MPEGH_MHA1 = "audio/mha1";
field public static final String AUDIO_MPEGH_MHM1 = "audio/mhm1";
field public static final String AUDIO_MPEG_L1 = "audio/mpeg-L1";
field public static final String AUDIO_MPEG_L2 = "audio/mpeg-L2";
field public static final String AUDIO_MSGSM = "audio/gsm";
field public static final String AUDIO_OGG = "audio/ogg";
field public static final String AUDIO_OPUS = "audio/opus";
field public static final String AUDIO_RAW = "audio/raw";
field public static final String AUDIO_TRUEHD = "audio/true-hd";
field public static final String AUDIO_VORBIS = "audio/vorbis";
field public static final String AUDIO_WAV = "audio/wav";
field public static final String AUDIO_WEBM = "audio/webm";
field public static final String IMAGE_HEIC = "image/heic";
field public static final String IMAGE_HEIF = "image/heif";
field public static final String IMAGE_JPEG = "image/jpeg";
field public static final String IMAGE_PNG = "image/png";
field public static final String IMAGE_WEBP = "image/webp";
field public static final String TEXT_SSA = "text/x-ssa";
field public static final String TEXT_VTT = "text/vtt";
field public static final String VIDEO_AV1 = "video/av01";
field public static final String VIDEO_AVI = "video/x-msvideo";
field public static final String VIDEO_DIVX = "video/divx";
field public static final String VIDEO_DOLBY_VISION = "video/dolby-vision";
field public static final String VIDEO_H263 = "video/3gpp";
field public static final String VIDEO_H264 = "video/avc";
field public static final String VIDEO_H265 = "video/hevc";
field public static final String VIDEO_MJPEG = "video/mjpeg";
field public static final String VIDEO_MP2T = "video/mp2t";
field public static final String VIDEO_MP4 = "video/mp4";
field public static final String VIDEO_MP42 = "video/mp42";
field public static final String VIDEO_MP43 = "video/mp43";
field public static final String VIDEO_MP4V = "video/mp4v-es";
field public static final String VIDEO_MPEG = "video/mpeg";
field public static final String VIDEO_MPEG2 = "video/mpeg2";
field public static final String VIDEO_OGG = "video/ogg";
field public static final String VIDEO_PS = "video/mp2p";
field public static final String VIDEO_VC1 = "video/wvc1";
field public static final String VIDEO_WEBM = "video/webm";
}
public final class PercentageRating extends androidx.media3.common.Rating {
ctor public PercentageRating();
ctor public PercentageRating(@FloatRange(from=0, to=100) float);
method public float getPercent();
method public boolean isRated();
}
public class PlaybackException extends java.lang.Exception {
method @CallSuper public boolean errorInfoEquals(@Nullable androidx.media3.common.PlaybackException);
method public static String getErrorCodeName(@androidx.media3.common.PlaybackException.ErrorCode int);
method public final String getErrorCodeName();
field public static final int CUSTOM_ERROR_CODE_BASE = 1000000; // 0xf4240
field public static final int ERROR_CODE_AUDIO_TRACK_INIT_FAILED = 5001; // 0x1389
field public static final int ERROR_CODE_AUDIO_TRACK_WRITE_FAILED = 5002; // 0x138a
field public static final int ERROR_CODE_BEHIND_LIVE_WINDOW = 1002; // 0x3ea
field public static final int ERROR_CODE_DECODER_INIT_FAILED = 4001; // 0xfa1
field public static final int ERROR_CODE_DECODER_QUERY_FAILED = 4002; // 0xfa2
field public static final int ERROR_CODE_DECODING_FAILED = 4003; // 0xfa3
field public static final int ERROR_CODE_DECODING_FORMAT_EXCEEDS_CAPABILITIES = 4004; // 0xfa4
field public static final int ERROR_CODE_DECODING_FORMAT_UNSUPPORTED = 4005; // 0xfa5
field public static final int ERROR_CODE_DRM_CONTENT_ERROR = 6003; // 0x1773
field public static final int ERROR_CODE_DRM_DEVICE_REVOKED = 6007; // 0x1777
field public static final int ERROR_CODE_DRM_DISALLOWED_OPERATION = 6005; // 0x1775
field public static final int ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED = 6004; // 0x1774
field public static final int ERROR_CODE_DRM_LICENSE_EXPIRED = 6008; // 0x1778
field public static final int ERROR_CODE_DRM_PROVISIONING_FAILED = 6002; // 0x1772
field public static final int ERROR_CODE_DRM_SCHEME_UNSUPPORTED = 6001; // 0x1771
field public static final int ERROR_CODE_DRM_SYSTEM_ERROR = 6006; // 0x1776
field public static final int ERROR_CODE_DRM_UNSPECIFIED = 6000; // 0x1770
field public static final int ERROR_CODE_FAILED_RUNTIME_CHECK = 1004; // 0x3ec
field public static final int ERROR_CODE_IO_BAD_HTTP_STATUS = 2004; // 0x7d4
field public static final int ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED = 2007; // 0x7d7
field public static final int ERROR_CODE_IO_FILE_NOT_FOUND = 2005; // 0x7d5
field public static final int ERROR_CODE_IO_INVALID_HTTP_CONTENT_TYPE = 2003; // 0x7d3
field public static final int ERROR_CODE_IO_NETWORK_CONNECTION_FAILED = 2001; // 0x7d1
field public static final int ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT = 2002; // 0x7d2
field public static final int ERROR_CODE_IO_NO_PERMISSION = 2006; // 0x7d6
field public static final int ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE = 2008; // 0x7d8
field public static final int ERROR_CODE_IO_UNSPECIFIED = 2000; // 0x7d0
field public static final int ERROR_CODE_PARSING_CONTAINER_MALFORMED = 3001; // 0xbb9
field public static final int ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED = 3003; // 0xbbb
field public static final int ERROR_CODE_PARSING_MANIFEST_MALFORMED = 3002; // 0xbba
field public static final int ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED = 3004; // 0xbbc
field public static final int ERROR_CODE_REMOTE_ERROR = 1001; // 0x3e9
field public static final int ERROR_CODE_TIMEOUT = 1003; // 0x3eb
field public static final int ERROR_CODE_UNSPECIFIED = 1000; // 0x3e8
field @androidx.media3.common.PlaybackException.ErrorCode public final int errorCode;
field public final long timestampMs;
}
@IntDef(open=true, value={androidx.media3.common.PlaybackException.ERROR_CODE_UNSPECIFIED, androidx.media3.common.PlaybackException.ERROR_CODE_REMOTE_ERROR, androidx.media3.common.PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW, androidx.media3.common.PlaybackException.ERROR_CODE_TIMEOUT, androidx.media3.common.PlaybackException.ERROR_CODE_FAILED_RUNTIME_CHECK, androidx.media3.common.PlaybackException.ERROR_CODE_IO_UNSPECIFIED, androidx.media3.common.PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT, androidx.media3.common.PlaybackException.ERROR_CODE_IO_INVALID_HTTP_CONTENT_TYPE, androidx.media3.common.PlaybackException.ERROR_CODE_IO_BAD_HTTP_STATUS, androidx.media3.common.PlaybackException.ERROR_CODE_IO_FILE_NOT_FOUND, androidx.media3.common.PlaybackException.ERROR_CODE_IO_NO_PERMISSION, androidx.media3.common.PlaybackException.ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED, androidx.media3.common.PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE, androidx.media3.common.PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED, androidx.media3.common.PlaybackException.ERROR_CODE_PARSING_MANIFEST_MALFORMED, androidx.media3.common.PlaybackException.ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED, androidx.media3.common.PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED, androidx.media3.common.PlaybackException.ERROR_CODE_DECODER_INIT_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DECODER_QUERY_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DECODING_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DECODING_FORMAT_EXCEEDS_CAPABILITIES, androidx.media3.common.PlaybackException.ERROR_CODE_DECODING_FORMAT_UNSUPPORTED, androidx.media3.common.PlaybackException.ERROR_CODE_AUDIO_TRACK_INIT_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_AUDIO_TRACK_WRITE_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_UNSPECIFIED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_SCHEME_UNSUPPORTED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_PROVISIONING_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_CONTENT_ERROR, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_DISALLOWED_OPERATION, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_SYSTEM_ERROR, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_DEVICE_REVOKED, androidx.media3.common.PlaybackException.ERROR_CODE_DRM_LICENSE_EXPIRED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface PlaybackException.ErrorCode {
}
public final class PlaybackParameters {
ctor public PlaybackParameters(@FloatRange(from=0, fromInclusive=false) float);
ctor public PlaybackParameters(@FloatRange(from=0, fromInclusive=false) float, @FloatRange(from=0, fromInclusive=false) float);
method @CheckResult public androidx.media3.common.PlaybackParameters withSpeed(@FloatRange(from=0, fromInclusive=false) float);
field public static final androidx.media3.common.PlaybackParameters DEFAULT;
field public final float pitch;
field public final float speed;
}
public interface Player {
method public void addListener(androidx.media3.common.Player.Listener);
method public void addMediaItem(androidx.media3.common.MediaItem);
method public void addMediaItem(int, androidx.media3.common.MediaItem);
method public void addMediaItems(java.util.List<androidx.media3.common.MediaItem>);
method public void addMediaItems(int, 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 default void replaceMediaItem(int, androidx.media3.common.MediaItem);
method public default void replaceMediaItems(int, int, java.util.List<androidx.media3.common.MediaItem>);
method public void seekBack();
method public void seekForward();
method public void seekTo(long);
method public void seekTo(int, long);
method public void seekToDefaultPosition();
method public void seekToDefaultPosition(int);
method public void seekToNext();
method public void seekToNextMediaItem();
method public void seekToPrevious();
method public void seekToPreviousMediaItem();
method @Deprecated public void setDeviceMuted(boolean);
method public void setDeviceMuted(boolean, @androidx.media3.common.C.VolumeFlags int);
method @Deprecated public void setDeviceVolume(@IntRange(from=0) int);
method public void setDeviceVolume(@IntRange(from=0) int, int);
method public void setMediaItem(androidx.media3.common.MediaItem);
method public void setMediaItem(androidx.media3.common.MediaItem, long);
method public void setMediaItem(androidx.media3.common.MediaItem, boolean);
method public void setMediaItems(java.util.List<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 @Deprecated public static final int COMMAND_SET_DEVICE_VOLUME = 25; // 0x19
field public static final int COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS = 33; // 0x21
field public static final int COMMAND_SET_MEDIA_ITEM = 31; // 0x1f
field @Deprecated public static final int COMMAND_SET_MEDIA_ITEMS_METADATA = 19; // 0x13
field public static final int COMMAND_SET_PLAYLIST_METADATA = 19; // 0x13
field public static final int COMMAND_SET_REPEAT_MODE = 15; // 0xf
field public static final int COMMAND_SET_SHUFFLE_MODE = 14; // 0xe
field public static final int COMMAND_SET_SPEED_AND_PITCH = 13; // 0xd
field public static final int COMMAND_SET_TRACK_SELECTION_PARAMETERS = 29; // 0x1d
field public static final int COMMAND_SET_VIDEO_SURFACE = 27; // 0x1b
field public static final int COMMAND_SET_VOLUME = 24; // 0x18
field public static final int COMMAND_STOP = 3; // 0x3
field public static final int DISCONTINUITY_REASON_AUTO_TRANSITION = 0; // 0x0
field public static final int DISCONTINUITY_REASON_INTERNAL = 5; // 0x5
field public static final int DISCONTINUITY_REASON_REMOVE = 4; // 0x4
field public static final int DISCONTINUITY_REASON_SEEK = 1; // 0x1
field public static final int DISCONTINUITY_REASON_SEEK_ADJUSTMENT = 2; // 0x2
field public static final int DISCONTINUITY_REASON_SKIP = 3; // 0x3
field public static final int EVENT_AUDIO_ATTRIBUTES_CHANGED = 20; // 0x14
field public static final int EVENT_AUDIO_SESSION_ID = 21; // 0x15
field public static final int EVENT_AVAILABLE_COMMANDS_CHANGED = 13; // 0xd
field public static final int EVENT_CUES = 27; // 0x1b
field public static final int EVENT_DEVICE_INFO_CHANGED = 29; // 0x1d
field public static final int EVENT_DEVICE_VOLUME_CHANGED = 30; // 0x1e
field public static final int EVENT_IS_LOADING_CHANGED = 3; // 0x3
field public static final int EVENT_IS_PLAYING_CHANGED = 7; // 0x7
field public static final int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED = 18; // 0x12
field public static final int EVENT_MEDIA_ITEM_TRANSITION = 1; // 0x1
field public static final int EVENT_MEDIA_METADATA_CHANGED = 14; // 0xe
field public static final int EVENT_METADATA = 28; // 0x1c
field public static final int EVENT_PLAYBACK_PARAMETERS_CHANGED = 12; // 0xc
field public static final int EVENT_PLAYBACK_STATE_CHANGED = 4; // 0x4
field public static final int EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED = 6; // 0x6
field public static final int EVENT_PLAYER_ERROR = 10; // 0xa
field public static final int EVENT_PLAYLIST_METADATA_CHANGED = 15; // 0xf
field public static final int EVENT_PLAY_WHEN_READY_CHANGED = 5; // 0x5
field public static final int EVENT_POSITION_DISCONTINUITY = 11; // 0xb
field public static final int EVENT_RENDERED_FIRST_FRAME = 26; // 0x1a
field public static final int EVENT_REPEAT_MODE_CHANGED = 8; // 0x8
field public static final int EVENT_SEEK_BACK_INCREMENT_CHANGED = 16; // 0x10
field public static final int EVENT_SEEK_FORWARD_INCREMENT_CHANGED = 17; // 0x11
field public static final int EVENT_SHUFFLE_MODE_ENABLED_CHANGED = 9; // 0x9
field public static final int EVENT_SKIP_SILENCE_ENABLED_CHANGED = 23; // 0x17
field public static final int EVENT_SURFACE_SIZE_CHANGED = 24; // 0x18
field public static final int EVENT_TIMELINE_CHANGED = 0; // 0x0
field public static final int EVENT_TRACKS_CHANGED = 2; // 0x2
field public static final int EVENT_TRACK_SELECTION_PARAMETERS_CHANGED = 19; // 0x13
field public static final int EVENT_VIDEO_SIZE_CHANGED = 25; // 0x19
field public static final int EVENT_VOLUME_CHANGED = 22; // 0x16
field public static final int MEDIA_ITEM_TRANSITION_REASON_AUTO = 1; // 0x1
field public static final int MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED = 3; // 0x3
field public static final int MEDIA_ITEM_TRANSITION_REASON_REPEAT = 0; // 0x0
field public static final int MEDIA_ITEM_TRANSITION_REASON_SEEK = 2; // 0x2
field public static final int PLAYBACK_SUPPRESSION_REASON_NONE = 0; // 0x0
field public static final int PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS = 1; // 0x1
field public static final int PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_ROUTE = 2; // 0x2
field public static final int PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY = 3; // 0x3
field public static final int PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS = 2; // 0x2
field public static final int PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM = 5; // 0x5
field public static final int PLAY_WHEN_READY_CHANGE_REASON_REMOTE = 4; // 0x4
field public static final int PLAY_WHEN_READY_CHANGE_REASON_SUPPRESSED_TOO_LONG = 6; // 0x6
field public static final int PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST = 1; // 0x1
field public static final int REPEAT_MODE_ALL = 2; // 0x2
field public static final int REPEAT_MODE_OFF = 0; // 0x0
field public static final int REPEAT_MODE_ONE = 1; // 0x1
field public static final int STATE_BUFFERING = 2; // 0x2
field public static final int STATE_ENDED = 4; // 0x4
field public static final int STATE_IDLE = 1; // 0x1
field public static final int STATE_READY = 3; // 0x3
field public static final int TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED = 0; // 0x0
field public static final int TIMELINE_CHANGE_REASON_SOURCE_UPDATE = 1; // 0x1
}
@IntDef({androidx.media3.common.Player.COMMAND_INVALID, androidx.media3.common.Player.COMMAND_PLAY_PAUSE, androidx.media3.common.Player.COMMAND_PREPARE, androidx.media3.common.Player.COMMAND_STOP, androidx.media3.common.Player.COMMAND_SEEK_TO_DEFAULT_POSITION, androidx.media3.common.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT, androidx.media3.common.Player.COMMAND_SEEK_TO_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_BACK, androidx.media3.common.Player.COMMAND_SEEK_FORWARD, androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH, androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE, androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE, androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_GET_TIMELINE, androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_GET_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS, androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES, androidx.media3.common.Player.COMMAND_GET_VOLUME, androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS, androidx.media3.common.Player.COMMAND_SET_VIDEO_SURFACE, androidx.media3.common.Player.COMMAND_GET_TEXT, androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS, androidx.media3.common.Player.COMMAND_GET_TRACKS, androidx.media3.common.Player.COMMAND_RELEASE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Command {
}
public static final class Player.Commands {
method public boolean contains(@androidx.media3.common.Player.Command int);
method public boolean containsAny(@androidx.media3.common.Player.Command int...);
method @androidx.media3.common.Player.Command public int get(int);
method public int size();
field public static final androidx.media3.common.Player.Commands EMPTY;
}
@IntDef({androidx.media3.common.Player.DISCONTINUITY_REASON_AUTO_TRANSITION, androidx.media3.common.Player.DISCONTINUITY_REASON_SEEK, androidx.media3.common.Player.DISCONTINUITY_REASON_SEEK_ADJUSTMENT, androidx.media3.common.Player.DISCONTINUITY_REASON_SKIP, androidx.media3.common.Player.DISCONTINUITY_REASON_REMOVE, androidx.media3.common.Player.DISCONTINUITY_REASON_INTERNAL}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.DiscontinuityReason {
}
@IntDef({androidx.media3.common.Player.EVENT_TIMELINE_CHANGED, androidx.media3.common.Player.EVENT_MEDIA_ITEM_TRANSITION, androidx.media3.common.Player.EVENT_TRACKS_CHANGED, androidx.media3.common.Player.EVENT_IS_LOADING_CHANGED, androidx.media3.common.Player.EVENT_PLAYBACK_STATE_CHANGED, androidx.media3.common.Player.EVENT_PLAY_WHEN_READY_CHANGED, androidx.media3.common.Player.EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED, androidx.media3.common.Player.EVENT_IS_PLAYING_CHANGED, androidx.media3.common.Player.EVENT_REPEAT_MODE_CHANGED, androidx.media3.common.Player.EVENT_SHUFFLE_MODE_ENABLED_CHANGED, androidx.media3.common.Player.EVENT_PLAYER_ERROR, androidx.media3.common.Player.EVENT_POSITION_DISCONTINUITY, androidx.media3.common.Player.EVENT_PLAYBACK_PARAMETERS_CHANGED, androidx.media3.common.Player.EVENT_AVAILABLE_COMMANDS_CHANGED, androidx.media3.common.Player.EVENT_MEDIA_METADATA_CHANGED, androidx.media3.common.Player.EVENT_PLAYLIST_METADATA_CHANGED, androidx.media3.common.Player.EVENT_SEEK_BACK_INCREMENT_CHANGED, androidx.media3.common.Player.EVENT_SEEK_FORWARD_INCREMENT_CHANGED, androidx.media3.common.Player.EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED, androidx.media3.common.Player.EVENT_TRACK_SELECTION_PARAMETERS_CHANGED, androidx.media3.common.Player.EVENT_AUDIO_ATTRIBUTES_CHANGED, androidx.media3.common.Player.EVENT_AUDIO_SESSION_ID, androidx.media3.common.Player.EVENT_VOLUME_CHANGED, androidx.media3.common.Player.EVENT_SKIP_SILENCE_ENABLED_CHANGED, androidx.media3.common.Player.EVENT_SURFACE_SIZE_CHANGED, androidx.media3.common.Player.EVENT_VIDEO_SIZE_CHANGED, androidx.media3.common.Player.EVENT_RENDERED_FIRST_FRAME, androidx.media3.common.Player.EVENT_CUES, androidx.media3.common.Player.EVENT_METADATA, androidx.media3.common.Player.EVENT_DEVICE_INFO_CHANGED, androidx.media3.common.Player.EVENT_DEVICE_VOLUME_CHANGED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Event {
}
public static final class Player.Events {
method public boolean contains(@androidx.media3.common.Player.Event int);
method public boolean containsAny(@androidx.media3.common.Player.Event int...);
method @androidx.media3.common.Player.Event public int get(int);
method public int size();
}
public static interface Player.Listener {
method public default void onAudioAttributesChanged(androidx.media3.common.AudioAttributes);
method public default void onAvailableCommandsChanged(androidx.media3.common.Player.Commands);
method public default void onCues(androidx.media3.common.text.CueGroup);
method public default void onDeviceInfoChanged(androidx.media3.common.DeviceInfo);
method public default void onDeviceVolumeChanged(int, boolean);
method public default void onEvents(androidx.media3.common.Player, androidx.media3.common.Player.Events);
method public default void onIsLoadingChanged(boolean);
method public default void onIsPlayingChanged(boolean);
method public default void onMaxSeekToPreviousPositionChanged(long);
method public default void onMediaItemTransition(@Nullable androidx.media3.common.MediaItem, @androidx.media3.common.Player.MediaItemTransitionReason int);
method public default void onMediaMetadataChanged(androidx.media3.common.MediaMetadata);
method public default void onPlayWhenReadyChanged(boolean, @androidx.media3.common.Player.PlayWhenReadyChangeReason int);
method public default void onPlaybackParametersChanged(androidx.media3.common.PlaybackParameters);
method public default void onPlaybackStateChanged(@androidx.media3.common.Player.State int);
method public default void onPlaybackSuppressionReasonChanged(@androidx.media3.common.Player.PlaybackSuppressionReason int);
method public default void onPlayerError(androidx.media3.common.PlaybackException);
method public default void onPlayerErrorChanged(@Nullable androidx.media3.common.PlaybackException);
method public default void onPlaylistMetadataChanged(androidx.media3.common.MediaMetadata);
method public default void onPositionDiscontinuity(androidx.media3.common.Player.PositionInfo, androidx.media3.common.Player.PositionInfo, @androidx.media3.common.Player.DiscontinuityReason int);
method public default void onRenderedFirstFrame();
method public default void onRepeatModeChanged(@androidx.media3.common.Player.RepeatMode int);
method public default void onSeekBackIncrementChanged(long);
method public default void onSeekForwardIncrementChanged(long);
method public default void onShuffleModeEnabledChanged(boolean);
method public default void onSkipSilenceEnabledChanged(boolean);
method public default void onSurfaceSizeChanged(int, int);
method public default void onTimelineChanged(androidx.media3.common.Timeline, @androidx.media3.common.Player.TimelineChangeReason int);
method public default void onTrackSelectionParametersChanged(androidx.media3.common.TrackSelectionParameters);
method public default void onTracksChanged(androidx.media3.common.Tracks);
method public default void onVideoSizeChanged(androidx.media3.common.VideoSize);
method public default void onVolumeChanged(float);
}
@IntDef({androidx.media3.common.Player.MEDIA_ITEM_TRANSITION_REASON_REPEAT, androidx.media3.common.Player.MEDIA_ITEM_TRANSITION_REASON_AUTO, androidx.media3.common.Player.MEDIA_ITEM_TRANSITION_REASON_SEEK, androidx.media3.common.Player.MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.MediaItemTransitionReason {
}
@IntDef({androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_REMOTE, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM, androidx.media3.common.Player.PLAY_WHEN_READY_CHANGE_REASON_SUPPRESSED_TOO_LONG}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.PlayWhenReadyChangeReason {
}
@IntDef({androidx.media3.common.Player.PLAYBACK_SUPPRESSION_REASON_NONE, androidx.media3.common.Player.PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS, androidx.media3.common.Player.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_ROUTE}) @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 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.media3.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.Context);
method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredTextLanguages(java.lang.String...);
method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredTextRoleFlags(@androidx.media3.common.C.RoleFlags int);
method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredVideoMimeType(@Nullable String);
method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredVideoMimeTypes(java.lang.String...);
method public androidx.media3.common.TrackSelectionParameters.Builder setPreferredVideoRoleFlags(@androidx.media3.common.C.RoleFlags int);
method public androidx.media3.common.TrackSelectionParameters.Builder setSelectUndeterminedTextLanguage(boolean);
method public androidx.media3.common.TrackSelectionParameters.Builder setTrackTypeDisabled(@androidx.media3.common.C.TrackType int, boolean);
method public androidx.media3.common.TrackSelectionParameters.Builder setViewportSize(int, int, boolean);
method public androidx.media3.common.TrackSelectionParameters.Builder setViewportSizeToPhysicalDisplaySize(android.content.Context, boolean);
}
public final class Tracks {
method public boolean containsType(@androidx.media3.common.C.TrackType int);
method public com.google.common.collect.ImmutableList<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 @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 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 public static boolean maybeRequestReadExternalStoragePermission(android.app.Activity, android.net.Uri...);
method public static boolean maybeRequestReadExternalStoragePermission(android.app.Activity, androidx.media3.common.MediaItem...);
method @org.checkerframework.checker.nullness.qual.EnsuresNonNullIf(result=false, expression="#1") public static boolean shouldShowPlayButton(@Nullable androidx.media3.common.Player);
}
}
package androidx.media3.datasource {
public interface DataSource {
}
public static interface DataSource.Factory {
}
public class DataSourceException extends java.io.IOException {
field @androidx.media3.common.PlaybackException.ErrorCode public final int reason;
}
public final class DefaultDataSource implements androidx.media3.datasource.DataSource {
}
public static final class DefaultDataSource.Factory implements androidx.media3.datasource.DataSource.Factory {
ctor public DefaultDataSource.Factory(android.content.Context);
ctor public DefaultDataSource.Factory(android.content.Context, androidx.media3.datasource.DataSource.Factory);
}
public class DefaultHttpDataSource implements androidx.media3.datasource.DataSource androidx.media3.datasource.HttpDataSource {
}
public static final class DefaultHttpDataSource.Factory implements androidx.media3.datasource.HttpDataSource.Factory {
ctor public DefaultHttpDataSource.Factory();
}
public interface HttpDataSource extends androidx.media3.datasource.DataSource {
}
public static final class HttpDataSource.CleartextNotPermittedException extends androidx.media3.datasource.HttpDataSource.HttpDataSourceException {
}
public static interface HttpDataSource.Factory extends androidx.media3.datasource.DataSource.Factory {
}
public static class HttpDataSource.HttpDataSourceException extends androidx.media3.datasource.DataSourceException {
field public static final int TYPE_CLOSE = 3; // 0x3
field public static final int TYPE_OPEN = 1; // 0x1
field public static final int TYPE_READ = 2; // 0x2
field @androidx.media3.datasource.HttpDataSource.HttpDataSourceException.Type public final int type;
}
@IntDef({androidx.media3.datasource.HttpDataSource.HttpDataSourceException.TYPE_OPEN, androidx.media3.datasource.HttpDataSource.HttpDataSourceException.TYPE_READ, androidx.media3.datasource.HttpDataSource.HttpDataSourceException.TYPE_CLOSE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface HttpDataSource.HttpDataSourceException.Type {
}
public static final class HttpDataSource.InvalidContentTypeException extends androidx.media3.datasource.HttpDataSource.HttpDataSourceException {
field public final String contentType;
}
public static final class HttpDataSource.InvalidResponseCodeException extends androidx.media3.datasource.HttpDataSource.HttpDataSourceException {
field public final byte[] responseBody;
field public final int responseCode;
field @Nullable public final String responseMessage;
}
}
package androidx.media3.datasource.cronet {
public class CronetDataSource implements androidx.media3.datasource.DataSource androidx.media3.datasource.HttpDataSource {
}
public static final class CronetDataSource.Factory implements androidx.media3.datasource.HttpDataSource.Factory {
ctor public CronetDataSource.Factory(org.chromium.net.CronetEngine, java.util.concurrent.Executor);
}
public final class CronetUtil {
method @Nullable public static org.chromium.net.CronetEngine buildCronetEngine(android.content.Context);
}
}
package androidx.media3.datasource.okhttp {
public class OkHttpDataSource implements androidx.media3.datasource.DataSource androidx.media3.datasource.HttpDataSource {
}
public static final class OkHttpDataSource.Factory implements androidx.media3.datasource.HttpDataSource.Factory {
ctor public OkHttpDataSource.Factory(okhttp3.Call.Factory);
}
}
package androidx.media3.exoplayer {
public final class ExoPlaybackException extends androidx.media3.common.PlaybackException {
}
public interface ExoPlayer extends androidx.media3.common.Player {
method public void addAnalyticsListener(androidx.media3.exoplayer.analytics.AnalyticsListener);
method @Nullable public androidx.media3.exoplayer.ExoPlaybackException getPlayerError();
method public void removeAnalyticsListener(androidx.media3.exoplayer.analytics.AnalyticsListener);
method public void setAudioAttributes(androidx.media3.common.AudioAttributes, boolean);
method public void setHandleAudioBecomingNoisy(boolean);
method public void setWakeMode(@androidx.media3.common.C.WakeMode int);
}
public static final class ExoPlayer.Builder {
ctor public ExoPlayer.Builder(android.content.Context);
method public androidx.media3.exoplayer.ExoPlayer build();
method public androidx.media3.exoplayer.ExoPlayer.Builder setAudioAttributes(androidx.media3.common.AudioAttributes, boolean);
method public androidx.media3.exoplayer.ExoPlayer.Builder setHandleAudioBecomingNoisy(boolean);
method public androidx.media3.exoplayer.ExoPlayer.Builder setMediaSourceFactory(androidx.media3.exoplayer.source.MediaSource.Factory);
method public androidx.media3.exoplayer.ExoPlayer.Builder setWakeMode(@androidx.media3.common.C.WakeMode int);
}
}
package androidx.media3.exoplayer.analytics {
public interface AnalyticsListener {
}
}
package androidx.media3.exoplayer.drm {
@RequiresApi(18) public final class FrameworkMediaDrm {
method public static boolean isCryptoSchemeSupported(java.util.UUID);
}
}
package androidx.media3.exoplayer.ima {
public final class ImaAdsLoader implements androidx.media3.exoplayer.source.ads.AdsLoader {
method public void release();
method public void setPlayer(@Nullable androidx.media3.common.Player);
}
public static final class ImaAdsLoader.Builder {
ctor public ImaAdsLoader.Builder(android.content.Context);
method public androidx.media3.exoplayer.ima.ImaAdsLoader build();
}
}
package androidx.media3.exoplayer.source {
public final class DefaultMediaSourceFactory implements androidx.media3.exoplayer.source.MediaSource.Factory {
ctor public DefaultMediaSourceFactory(android.content.Context);
method public androidx.media3.exoplayer.source.DefaultMediaSourceFactory clearLocalAdInsertionComponents();
method public androidx.media3.exoplayer.source.DefaultMediaSourceFactory setDataSourceFactory(androidx.media3.datasource.DataSource.Factory);
method public androidx.media3.exoplayer.source.DefaultMediaSourceFactory setLocalAdInsertionComponents(androidx.media3.exoplayer.source.ads.AdsLoader.Provider, androidx.media3.common.AdViewProvider);
}
public interface MediaSource {
}
public static interface MediaSource.Factory {
}
}
package androidx.media3.exoplayer.source.ads {
public interface AdsLoader {
method public void release();
method public void setPlayer(@Nullable androidx.media3.common.Player);
}
public static interface AdsLoader.Provider {
method @Nullable public androidx.media3.exoplayer.source.ads.AdsLoader getAdsLoader(androidx.media3.common.MediaItem.AdsConfiguration);
}
}
package androidx.media3.exoplayer.util {
public class DebugTextViewHelper {
ctor public DebugTextViewHelper(androidx.media3.exoplayer.ExoPlayer, android.widget.TextView);
method public final void start();
method public final void stop();
}
public class EventLogger implements androidx.media3.exoplayer.analytics.AnalyticsListener {
ctor public EventLogger();
ctor public EventLogger(String);
}
}
package androidx.media3.session {
public final class CommandButton {
field public final CharSequence displayName;
field @DrawableRes public final int iconResId;
field public final boolean isEnabled;
field @androidx.media3.common.Player.Command public final int playerCommand;
field @Nullable public final androidx.media3.session.SessionCommand sessionCommand;
}
public static final class CommandButton.Builder {
ctor public CommandButton.Builder();
method public androidx.media3.session.CommandButton build();
method public androidx.media3.session.CommandButton.Builder setDisplayName(CharSequence);
method public androidx.media3.session.CommandButton.Builder setEnabled(boolean);
method public androidx.media3.session.CommandButton.Builder setExtras(android.os.Bundle);
method public androidx.media3.session.CommandButton.Builder setIconResId(@DrawableRes int);
method public androidx.media3.session.CommandButton.Builder setPlayerCommand(@androidx.media3.common.Player.Command int);
method public androidx.media3.session.CommandButton.Builder setSessionCommand(androidx.media3.session.SessionCommand);
}
public final class LibraryResult<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<androidx.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.LibraryResult.RESULT_ERROR_UNKNOWN, androidx.media3.session.LibraryResult.RESULT_ERROR_INVALID_STATE, androidx.media3.session.LibraryResult.RESULT_ERROR_BAD_VALUE, androidx.media3.session.LibraryResult.RESULT_ERROR_PERMISSION_DENIED, androidx.media3.session.LibraryResult.RESULT_ERROR_IO, androidx.media3.session.LibraryResult.RESULT_INFO_SKIPPED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_DISCONNECTED, androidx.media3.session.LibraryResult.RESULT_ERROR_NOT_SUPPORTED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED, androidx.media3.session.LibraryResult.RESULT_ERROR_SESSION_SETUP_REQUIRED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface LibraryResult.Code {
}
public final class MediaBrowser extends androidx.media3.session.MediaController {
method public com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryResult<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.LibraryResult<androidx.media3.common.MediaItem>> getItem(String);
method public com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryResult<androidx.media3.common.MediaItem>> getLibraryRoot(@Nullable androidx.media3.session.MediaLibraryService.LibraryParams);
method public com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryResult<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.LibraryResult<java.lang.Void>> search(String, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams);
method public com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryResult<java.lang.Void>> subscribe(String, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams);
method public com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryResult<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.MediaBrowser> buildAsync();
method public androidx.media3.session.MediaBrowser.Builder setApplicationLooper(android.os.Looper);
method public androidx.media3.session.MediaBrowser.Builder setConnectionHints(android.os.Bundle);
method public androidx.media3.session.MediaBrowser.Builder setListener(androidx.media3.session.MediaBrowser.Listener);
}
public static interface MediaBrowser.Listener extends androidx.media3.session.MediaController.Listener {
method public default void onChildrenChanged(androidx.media3.session.MediaBrowser, String, @IntRange(from=0) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams);
method public default void onSearchResultChanged(androidx.media3.session.MediaBrowser, String, @IntRange(from=0) int, @Nullable androidx.media3.session.MediaLibraryService.LibraryParams);
}
public final class MediaConstants {
field public static final int ERROR_CODE_AUTHENTICATION_EXPIRED_COMPAT = 3; // 0x3
field public static final String EXTRAS_KEY_ERROR_RESOLUTION_ACTION_INTENT_COMPAT = "android.media.extras.ERROR_RESOLUTION_ACTION_INTENT";
field public static final String EXTRAS_KEY_ERROR_RESOLUTION_ACTION_LABEL_COMPAT = "android.media.extras.ERROR_RESOLUTION_ACTION_LABEL";
field public static final String EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_NEXT = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_NEXT";
field public static final String EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_PREV = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_PREVIOUS";
}
@com.google.errorprone.annotations.DoNotMock public class MediaController implements androidx.media3.common.Player {
method public final void addListener(androidx.media3.common.Player.Listener);
method public final void addMediaItem(androidx.media3.common.MediaItem);
method public final void addMediaItem(int, androidx.media3.common.MediaItem);
method public final void addMediaItems(java.util.List<androidx.media3.common.MediaItem>);
method public final void addMediaItems(int, 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.CommandCode int);
method public final boolean isSessionCommandAvailable(androidx.media3.session.SessionCommand);
method public final void moveMediaItem(int, int);
method public final void moveMediaItems(int, int, int);
method public final void pause();
method public final void play();
method public final void prepare();
method public final void release();
method public static void releaseFuture(java.util.concurrent.Future<? 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 seekBack();
method public final void seekForward();
method public final void seekTo(long);
method public final void seekTo(int, long);
method public final void seekToDefaultPosition();
method public final void seekToDefaultPosition(int);
method public final void seekToNext();
method public final void seekToNextMediaItem();
method public final void seekToPrevious();
method public final void seekToPreviousMediaItem();
method public final com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.SessionResult> sendCustomCommand(androidx.media3.session.SessionCommand, android.os.Bundle);
method @Deprecated public final void setDeviceMuted(boolean);
method public final void setDeviceMuted(boolean, @androidx.media3.common.C.VolumeFlags int);
method @Deprecated public final void setDeviceVolume(@IntRange(from=0) int);
method public final void setDeviceVolume(@IntRange(from=0) int, @androidx.media3.common.C.VolumeFlags int);
method public final void setMediaItem(androidx.media3.common.MediaItem);
method public final void setMediaItem(androidx.media3.common.MediaItem, long);
method public final void setMediaItem(androidx.media3.common.MediaItem, boolean);
method public final void setMediaItems(java.util.List<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.SessionResult> setRating(String, androidx.media3.common.Rating);
method public final com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.SessionResult> setRating(androidx.media3.common.Rating);
method public final void setRepeatMode(@androidx.media3.common.Player.RepeatMode int);
method public final void setShuffleModeEnabled(boolean);
method public final void setTrackSelectionParameters(androidx.media3.common.TrackSelectionParameters);
method public final void setVideoSurface(@Nullable android.view.Surface);
method public final void setVideoSurfaceHolder(@Nullable android.view.SurfaceHolder);
method public final void setVideoSurfaceView(@Nullable android.view.SurfaceView);
method public final void setVideoTextureView(@Nullable android.view.TextureView);
method public final void setVolume(@FloatRange(from=0, to=1) float);
method public final void stop();
}
public static final class MediaController.Builder {
ctor public MediaController.Builder(android.content.Context, androidx.media3.session.SessionToken);
method public com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.MediaController> 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.SessionResult> 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.SessionResult> 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.MediaLibraryService, androidx.media3.common.Player, androidx.media3.session.MediaLibraryService.MediaLibrarySession.Callback);
method public androidx.media3.session.MediaLibraryService.MediaLibrarySession build();
method public androidx.media3.session.MediaLibraryService.MediaLibrarySession.Builder setExtras(android.os.Bundle);
method public androidx.media3.session.MediaLibraryService.MediaLibrarySession.Builder setId(String);
method public androidx.media3.session.MediaLibraryService.MediaLibrarySession.Builder setSessionActivity(android.app.PendingIntent);
}
public static interface MediaLibraryService.MediaLibrarySession.Callback extends androidx.media3.session.MediaSession.Callback {
method public default com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.LibraryResult<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.LibraryResult<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.LibraryResult<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.LibraryResult<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.LibraryResult<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.LibraryResult<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.LibraryResult<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.SessionResult> 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.SessionResult> 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.common.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.SessionResult> 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.SessionResult> onSetRating(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, String, androidx.media3.common.Rating);
method public default com.google.common.util.concurrent.ListenableFuture<androidx.media3.session.SessionResult> onSetRating(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, androidx.media3.common.Rating);
}
public static final class MediaSession.ConnectionResult {
method public static androidx.media3.session.MediaSession.ConnectionResult accept(androidx.media3.session.SessionCommands, androidx.media3.common.Player.Commands);
method public static androidx.media3.session.MediaSession.ConnectionResult reject();
field public final androidx.media3.common.Player.Commands availablePlayerCommands;
field public final androidx.media3.session.SessionCommands availableSessionCommands;
field public final boolean isAccepted;
}
public static final class MediaSession.ControllerInfo {
method public android.os.Bundle getConnectionHints();
method public int getControllerVersion();
method public String getPackageName();
method public int getUid();
field public static final int LEGACY_CONTROLLER_VERSION = 0; // 0x0
}
public abstract class MediaSessionService extends android.app.Service {
ctor public MediaSessionService();
method public final void addSession(androidx.media3.session.MediaSession);
method public final java.util.List<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 build();
method public androidx.media3.session.SessionCommands.Builder remove(androidx.media3.session.SessionCommand);
method public androidx.media3.session.SessionCommands.Builder remove(@androidx.media3.session.SessionCommand.CommandCode int);
}
public final class SessionResult {
ctor public SessionResult(@androidx.media3.session.SessionResult.Code int);
ctor public SessionResult(@androidx.media3.session.SessionResult.Code int, android.os.Bundle);
field public static final int RESULT_ERROR_BAD_VALUE = -3; // 0xfffffffd
field public static final int RESULT_ERROR_INVALID_STATE = -2; // 0xfffffffe
field public static final int RESULT_ERROR_IO = -5; // 0xfffffffb
field public static final int RESULT_ERROR_NOT_SUPPORTED = -6; // 0xfffffffa
field public static final int RESULT_ERROR_PERMISSION_DENIED = -4; // 0xfffffffc
field public static final int RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED = -102; // 0xffffff9a
field public static final int RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT = -104; // 0xffffff98
field public static final int RESULT_ERROR_SESSION_DISCONNECTED = -100; // 0xffffff9c
field public static final int RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION = -106; // 0xffffff96
field public static final int RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED = -105; // 0xffffff97
field public static final int RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED = -103; // 0xffffff99
field public static final int RESULT_ERROR_SESSION_SETUP_REQUIRED = -108; // 0xffffff94
field public static final int RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED = -107; // 0xffffff95
field public static final int RESULT_ERROR_UNKNOWN = -1; // 0xffffffff
field public static final int RESULT_INFO_SKIPPED = 1; // 0x1
field public static final int RESULT_SUCCESS = 0; // 0x0
field public final long completionTimeMs;
field public final android.os.Bundle extras;
field @androidx.media3.session.SessionResult.Code public final int resultCode;
}
@IntDef({androidx.media3.session.SessionResult.RESULT_SUCCESS, androidx.media3.session.SessionResult.RESULT_ERROR_UNKNOWN, androidx.media3.session.SessionResult.RESULT_ERROR_INVALID_STATE, androidx.media3.session.SessionResult.RESULT_ERROR_BAD_VALUE, androidx.media3.session.SessionResult.RESULT_ERROR_PERMISSION_DENIED, androidx.media3.session.SessionResult.RESULT_ERROR_IO, androidx.media3.session.SessionResult.RESULT_INFO_SKIPPED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_DISCONNECTED, androidx.media3.session.SessionResult.RESULT_ERROR_NOT_SUPPORTED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED, androidx.media3.session.SessionResult.RESULT_ERROR_SESSION_SETUP_REQUIRED}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE) public static @interface SessionResult.Code {
}
public final class SessionToken {
ctor public SessionToken(android.content.Context, android.content.ComponentName);
method public static com.google.common.collect.ImmutableSet<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);
}
}