xref: /aosp_15_r20/prebuilts/sdk/30/public/api/framework-media.txt (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Worker// Signature format: 2.0
2*344a7f5eSAndroid Build Coastguard Workerpackage android.media {
3*344a7f5eSAndroid Build Coastguard Worker
4*344a7f5eSAndroid Build Coastguard Worker  public class MediaController2 implements java.lang.AutoCloseable {
5*344a7f5eSAndroid Build Coastguard Worker    method public void cancelSessionCommand(@NonNull Object);
6*344a7f5eSAndroid Build Coastguard Worker    method public void close();
7*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.media.Session2Token getConnectedToken();
8*344a7f5eSAndroid Build Coastguard Worker    method public boolean isPlaybackActive();
9*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public Object sendSessionCommand(@NonNull android.media.Session2Command, @Nullable android.os.Bundle);
10*344a7f5eSAndroid Build Coastguard Worker  }
11*344a7f5eSAndroid Build Coastguard Worker
12*344a7f5eSAndroid Build Coastguard Worker  public static final class MediaController2.Builder {
13*344a7f5eSAndroid Build Coastguard Worker    ctor public MediaController2.Builder(@NonNull android.content.Context, @NonNull android.media.Session2Token);
14*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.MediaController2 build();
15*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.MediaController2.Builder setConnectionHints(@NonNull android.os.Bundle);
16*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.MediaController2.Builder setControllerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaController2.ControllerCallback);
17*344a7f5eSAndroid Build Coastguard Worker  }
18*344a7f5eSAndroid Build Coastguard Worker
19*344a7f5eSAndroid Build Coastguard Worker  public abstract static class MediaController2.ControllerCallback {
20*344a7f5eSAndroid Build Coastguard Worker    ctor public MediaController2.ControllerCallback();
21*344a7f5eSAndroid Build Coastguard Worker    method public void onCommandResult(@NonNull android.media.MediaController2, @NonNull Object, @NonNull android.media.Session2Command, @NonNull android.media.Session2Command.Result);
22*344a7f5eSAndroid Build Coastguard Worker    method public void onConnected(@NonNull android.media.MediaController2, @NonNull android.media.Session2CommandGroup);
23*344a7f5eSAndroid Build Coastguard Worker    method public void onDisconnected(@NonNull android.media.MediaController2);
24*344a7f5eSAndroid Build Coastguard Worker    method public void onPlaybackActiveChanged(@NonNull android.media.MediaController2, boolean);
25*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.media.Session2Command.Result onSessionCommand(@NonNull android.media.MediaController2, @NonNull android.media.Session2Command, @Nullable android.os.Bundle);
26*344a7f5eSAndroid Build Coastguard Worker  }
27*344a7f5eSAndroid Build Coastguard Worker
28*344a7f5eSAndroid Build Coastguard Worker  public final class MediaParser {
29*344a7f5eSAndroid Build Coastguard Worker    method public boolean advance(@NonNull android.media.MediaParser.SeekableInputReader) throws java.io.IOException;
30*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public static android.media.MediaParser create(@NonNull android.media.MediaParser.OutputConsumer, @NonNull java.lang.String...);
31*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public static android.media.MediaParser createByName(@NonNull String, @NonNull android.media.MediaParser.OutputConsumer);
32*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public String getParserName();
33*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public static java.util.List<java.lang.String> getParserNames(@NonNull android.media.MediaFormat);
34*344a7f5eSAndroid Build Coastguard Worker    method public void release();
35*344a7f5eSAndroid Build Coastguard Worker    method public void seek(@NonNull android.media.MediaParser.SeekPoint);
36*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.MediaParser setParameter(@NonNull String, @NonNull Object);
37*344a7f5eSAndroid Build Coastguard Worker    method public boolean supportsParameter(@NonNull String);
38*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_ADTS_ENABLE_CBR_SEEKING = "android.media.mediaparser.adts.enableCbrSeeking";
39*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_AMR_ENABLE_CBR_SEEKING = "android.media.mediaparser.amr.enableCbrSeeking";
40*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_FLAC_DISABLE_ID3 = "android.media.mediaparser.flac.disableId3";
41*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_MATROSKA_DISABLE_CUES_SEEKING = "android.media.mediaparser.matroska.disableCuesSeeking";
42*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_MP3_DISABLE_ID3 = "android.media.mediaparser.mp3.disableId3";
43*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_MP3_ENABLE_CBR_SEEKING = "android.media.mediaparser.mp3.enableCbrSeeking";
44*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_MP3_ENABLE_INDEX_SEEKING = "android.media.mediaparser.mp3.enableIndexSeeking";
45*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_MP4_IGNORE_EDIT_LISTS = "android.media.mediaparser.mp4.ignoreEditLists";
46*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_MP4_IGNORE_TFDT_BOX = "android.media.mediaparser.mp4.ignoreTfdtBox";
47*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_MP4_TREAT_VIDEO_FRAMES_AS_KEYFRAMES = "android.media.mediaparser.mp4.treatVideoFramesAsKeyframes";
48*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_TS_ALLOW_NON_IDR_AVC_KEYFRAMES = "android.media.mediaparser.ts.allowNonIdrAvcKeyframes";
49*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_TS_DETECT_ACCESS_UNITS = "android.media.mediaparser.ts.ignoreDetectAccessUnits";
50*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_TS_ENABLE_HDMV_DTS_AUDIO_STREAMS = "android.media.mediaparser.ts.enableHdmvDtsAudioStreams";
51*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_TS_IGNORE_AAC_STREAM = "android.media.mediaparser.ts.ignoreAacStream";
52*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "android.media.mediaparser.ts.ignoreAvcStream";
53*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = "android.media.mediaparser.ts.ignoreSpliceInfoStream";
54*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARAMETER_TS_MODE = "android.media.mediaparser.ts.mode";
55*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_AC3 = "android.media.mediaparser.Ac3Parser";
56*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_AC4 = "android.media.mediaparser.Ac4Parser";
57*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_ADTS = "android.media.mediaparser.AdtsParser";
58*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_AMR = "android.media.mediaparser.AmrParser";
59*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_FLAC = "android.media.mediaparser.FlacParser";
60*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_FLV = "android.media.mediaparser.FlvParser";
61*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_FMP4 = "android.media.mediaparser.FragmentedMp4Parser";
62*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_MATROSKA = "android.media.mediaparser.MatroskaParser";
63*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_MP3 = "android.media.mediaparser.Mp3Parser";
64*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_MP4 = "android.media.mediaparser.Mp4Parser";
65*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_OGG = "android.media.mediaparser.OggParser";
66*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_PS = "android.media.mediaparser.PsParser";
67*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_TS = "android.media.mediaparser.TsParser";
68*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_UNKNOWN = "android.media.mediaparser.UNKNOWN";
69*344a7f5eSAndroid Build Coastguard Worker    field public static final String PARSER_NAME_WAV = "android.media.mediaparser.WavParser";
70*344a7f5eSAndroid Build Coastguard Worker    field public static final int SAMPLE_FLAG_DECODE_ONLY = -2147483648; // 0x80000000
71*344a7f5eSAndroid Build Coastguard Worker    field public static final int SAMPLE_FLAG_ENCRYPTED = 1073741824; // 0x40000000
72*344a7f5eSAndroid Build Coastguard Worker    field public static final int SAMPLE_FLAG_HAS_SUPPLEMENTAL_DATA = 268435456; // 0x10000000
73*344a7f5eSAndroid Build Coastguard Worker    field public static final int SAMPLE_FLAG_KEY_FRAME = 1; // 0x1
74*344a7f5eSAndroid Build Coastguard Worker    field public static final int SAMPLE_FLAG_LAST_SAMPLE = 536870912; // 0x20000000
75*344a7f5eSAndroid Build Coastguard Worker  }
76*344a7f5eSAndroid Build Coastguard Worker
77*344a7f5eSAndroid Build Coastguard Worker  public static interface MediaParser.InputReader {
78*344a7f5eSAndroid Build Coastguard Worker    method public long getLength();
79*344a7f5eSAndroid Build Coastguard Worker    method public long getPosition();
80*344a7f5eSAndroid Build Coastguard Worker    method public int read(@NonNull byte[], int, int) throws java.io.IOException;
81*344a7f5eSAndroid Build Coastguard Worker  }
82*344a7f5eSAndroid Build Coastguard Worker
83*344a7f5eSAndroid Build Coastguard Worker  public static interface MediaParser.OutputConsumer {
84*344a7f5eSAndroid Build Coastguard Worker    method public void onSampleCompleted(int, long, int, int, int, @Nullable android.media.MediaCodec.CryptoInfo);
85*344a7f5eSAndroid Build Coastguard Worker    method public void onSampleDataFound(int, @NonNull android.media.MediaParser.InputReader) throws java.io.IOException;
86*344a7f5eSAndroid Build Coastguard Worker    method public void onSeekMapFound(@NonNull android.media.MediaParser.SeekMap);
87*344a7f5eSAndroid Build Coastguard Worker    method public void onTrackCountFound(int);
88*344a7f5eSAndroid Build Coastguard Worker    method public void onTrackDataFound(int, @NonNull android.media.MediaParser.TrackData);
89*344a7f5eSAndroid Build Coastguard Worker  }
90*344a7f5eSAndroid Build Coastguard Worker
91*344a7f5eSAndroid Build Coastguard Worker  public static final class MediaParser.ParsingException extends java.io.IOException {
92*344a7f5eSAndroid Build Coastguard Worker  }
93*344a7f5eSAndroid Build Coastguard Worker
94*344a7f5eSAndroid Build Coastguard Worker  public static final class MediaParser.SeekMap {
95*344a7f5eSAndroid Build Coastguard Worker    method public long getDurationMicros();
96*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.util.Pair<android.media.MediaParser.SeekPoint,android.media.MediaParser.SeekPoint> getSeekPoints(long);
97*344a7f5eSAndroid Build Coastguard Worker    method public boolean isSeekable();
98*344a7f5eSAndroid Build Coastguard Worker    field public static final int UNKNOWN_DURATION = -2147483648; // 0x80000000
99*344a7f5eSAndroid Build Coastguard Worker  }
100*344a7f5eSAndroid Build Coastguard Worker
101*344a7f5eSAndroid Build Coastguard Worker  public static final class MediaParser.SeekPoint {
102*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.media.MediaParser.SeekPoint START;
103*344a7f5eSAndroid Build Coastguard Worker    field public final long position;
104*344a7f5eSAndroid Build Coastguard Worker    field public final long timeMicros;
105*344a7f5eSAndroid Build Coastguard Worker  }
106*344a7f5eSAndroid Build Coastguard Worker
107*344a7f5eSAndroid Build Coastguard Worker  public static interface MediaParser.SeekableInputReader extends android.media.MediaParser.InputReader {
108*344a7f5eSAndroid Build Coastguard Worker    method public void seekToPosition(long);
109*344a7f5eSAndroid Build Coastguard Worker  }
110*344a7f5eSAndroid Build Coastguard Worker
111*344a7f5eSAndroid Build Coastguard Worker  public static final class MediaParser.TrackData {
112*344a7f5eSAndroid Build Coastguard Worker    field @Nullable public final android.media.DrmInitData drmInitData;
113*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public final android.media.MediaFormat mediaFormat;
114*344a7f5eSAndroid Build Coastguard Worker  }
115*344a7f5eSAndroid Build Coastguard Worker
116*344a7f5eSAndroid Build Coastguard Worker  public static final class MediaParser.UnrecognizedInputFormatException extends java.io.IOException {
117*344a7f5eSAndroid Build Coastguard Worker  }
118*344a7f5eSAndroid Build Coastguard Worker
119*344a7f5eSAndroid Build Coastguard Worker  public class MediaSession2 implements java.lang.AutoCloseable {
120*344a7f5eSAndroid Build Coastguard Worker    method public void broadcastSessionCommand(@NonNull android.media.Session2Command, @Nullable android.os.Bundle);
121*344a7f5eSAndroid Build Coastguard Worker    method public void cancelSessionCommand(@NonNull android.media.MediaSession2.ControllerInfo, @NonNull Object);
122*344a7f5eSAndroid Build Coastguard Worker    method public void close();
123*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public java.util.List<android.media.MediaSession2.ControllerInfo> getConnectedControllers();
124*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public String getId();
125*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.Session2Token getToken();
126*344a7f5eSAndroid Build Coastguard Worker    method public boolean isPlaybackActive();
127*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public Object sendSessionCommand(@NonNull android.media.MediaSession2.ControllerInfo, @NonNull android.media.Session2Command, @Nullable android.os.Bundle);
128*344a7f5eSAndroid Build Coastguard Worker    method public void setPlaybackActive(boolean);
129*344a7f5eSAndroid Build Coastguard Worker  }
130*344a7f5eSAndroid Build Coastguard Worker
131*344a7f5eSAndroid Build Coastguard Worker  public static final class MediaSession2.Builder {
132*344a7f5eSAndroid Build Coastguard Worker    ctor public MediaSession2.Builder(@NonNull android.content.Context);
133*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.MediaSession2 build();
134*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.MediaSession2.Builder setExtras(@NonNull android.os.Bundle);
135*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.MediaSession2.Builder setId(@NonNull String);
136*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.MediaSession2.Builder setSessionActivity(@Nullable android.app.PendingIntent);
137*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.MediaSession2.Builder setSessionCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaSession2.SessionCallback);
138*344a7f5eSAndroid Build Coastguard Worker  }
139*344a7f5eSAndroid Build Coastguard Worker
140*344a7f5eSAndroid Build Coastguard Worker  public static final class MediaSession2.ControllerInfo {
141*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.os.Bundle getConnectionHints();
142*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public String getPackageName();
143*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.session.MediaSessionManager.RemoteUserInfo getRemoteUserInfo();
144*344a7f5eSAndroid Build Coastguard Worker    method public int getUid();
145*344a7f5eSAndroid Build Coastguard Worker  }
146*344a7f5eSAndroid Build Coastguard Worker
147*344a7f5eSAndroid Build Coastguard Worker  public abstract static class MediaSession2.SessionCallback {
148*344a7f5eSAndroid Build Coastguard Worker    ctor public MediaSession2.SessionCallback();
149*344a7f5eSAndroid Build Coastguard Worker    method public void onCommandResult(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo, @NonNull Object, @NonNull android.media.Session2Command, @NonNull android.media.Session2Command.Result);
150*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.media.Session2CommandGroup onConnect(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo);
151*344a7f5eSAndroid Build Coastguard Worker    method public void onDisconnected(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo);
152*344a7f5eSAndroid Build Coastguard Worker    method public void onPostConnect(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo);
153*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.media.Session2Command.Result onSessionCommand(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo, @NonNull android.media.Session2Command, @Nullable android.os.Bundle);
154*344a7f5eSAndroid Build Coastguard Worker  }
155*344a7f5eSAndroid Build Coastguard Worker
156*344a7f5eSAndroid Build Coastguard Worker  public abstract class MediaSession2Service extends android.app.Service {
157*344a7f5eSAndroid Build Coastguard Worker    ctor public MediaSession2Service();
158*344a7f5eSAndroid Build Coastguard Worker    method public final void addSession(@NonNull android.media.MediaSession2);
159*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public final java.util.List<android.media.MediaSession2> getSessions();
160*344a7f5eSAndroid Build Coastguard Worker    method @CallSuper @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent);
161*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public abstract android.media.MediaSession2 onGetSession(@NonNull android.media.MediaSession2.ControllerInfo);
162*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public abstract android.media.MediaSession2Service.MediaNotification onUpdateNotification(@NonNull android.media.MediaSession2);
163*344a7f5eSAndroid Build Coastguard Worker    method public final void removeSession(@NonNull android.media.MediaSession2);
164*344a7f5eSAndroid Build Coastguard Worker    field public static final String SERVICE_INTERFACE = "android.media.MediaSession2Service";
165*344a7f5eSAndroid Build Coastguard Worker  }
166*344a7f5eSAndroid Build Coastguard Worker
167*344a7f5eSAndroid Build Coastguard Worker  public static class MediaSession2Service.MediaNotification {
168*344a7f5eSAndroid Build Coastguard Worker    ctor public MediaSession2Service.MediaNotification(int, @NonNull android.app.Notification);
169*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.app.Notification getNotification();
170*344a7f5eSAndroid Build Coastguard Worker    method public int getNotificationId();
171*344a7f5eSAndroid Build Coastguard Worker  }
172*344a7f5eSAndroid Build Coastguard Worker
173*344a7f5eSAndroid Build Coastguard Worker  public final class Session2Command implements android.os.Parcelable {
174*344a7f5eSAndroid Build Coastguard Worker    ctor public Session2Command(int);
175*344a7f5eSAndroid Build Coastguard Worker    ctor public Session2Command(@NonNull String, @Nullable android.os.Bundle);
176*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
177*344a7f5eSAndroid Build Coastguard Worker    method public int getCommandCode();
178*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public String getCustomAction();
179*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.os.Bundle getCustomExtras();
180*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
181*344a7f5eSAndroid Build Coastguard Worker    field public static final int COMMAND_CODE_CUSTOM = 0; // 0x0
182*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.media.Session2Command> CREATOR;
183*344a7f5eSAndroid Build Coastguard Worker  }
184*344a7f5eSAndroid Build Coastguard Worker
185*344a7f5eSAndroid Build Coastguard Worker  public static final class Session2Command.Result {
186*344a7f5eSAndroid Build Coastguard Worker    ctor public Session2Command.Result(int, @Nullable android.os.Bundle);
187*344a7f5eSAndroid Build Coastguard Worker    method public int getResultCode();
188*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.os.Bundle getResultData();
189*344a7f5eSAndroid Build Coastguard Worker    field public static final int RESULT_ERROR_UNKNOWN_ERROR = -1; // 0xffffffff
190*344a7f5eSAndroid Build Coastguard Worker    field public static final int RESULT_INFO_SKIPPED = 1; // 0x1
191*344a7f5eSAndroid Build Coastguard Worker    field public static final int RESULT_SUCCESS = 0; // 0x0
192*344a7f5eSAndroid Build Coastguard Worker  }
193*344a7f5eSAndroid Build Coastguard Worker
194*344a7f5eSAndroid Build Coastguard Worker  public final class Session2CommandGroup implements android.os.Parcelable {
195*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
196*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public java.util.Set<android.media.Session2Command> getCommands();
197*344a7f5eSAndroid Build Coastguard Worker    method public boolean hasCommand(@NonNull android.media.Session2Command);
198*344a7f5eSAndroid Build Coastguard Worker    method public boolean hasCommand(int);
199*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
200*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.media.Session2CommandGroup> CREATOR;
201*344a7f5eSAndroid Build Coastguard Worker  }
202*344a7f5eSAndroid Build Coastguard Worker
203*344a7f5eSAndroid Build Coastguard Worker  public static final class Session2CommandGroup.Builder {
204*344a7f5eSAndroid Build Coastguard Worker    ctor public Session2CommandGroup.Builder();
205*344a7f5eSAndroid Build Coastguard Worker    ctor public Session2CommandGroup.Builder(@NonNull android.media.Session2CommandGroup);
206*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.Session2CommandGroup.Builder addCommand(@NonNull android.media.Session2Command);
207*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.Session2CommandGroup build();
208*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.media.Session2CommandGroup.Builder removeCommand(@NonNull android.media.Session2Command);
209*344a7f5eSAndroid Build Coastguard Worker  }
210*344a7f5eSAndroid Build Coastguard Worker
211*344a7f5eSAndroid Build Coastguard Worker  public final class Session2Token implements android.os.Parcelable {
212*344a7f5eSAndroid Build Coastguard Worker    ctor public Session2Token(@NonNull android.content.Context, @NonNull android.content.ComponentName);
213*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
214*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.os.Bundle getExtras();
215*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public String getPackageName();
216*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public String getServiceName();
217*344a7f5eSAndroid Build Coastguard Worker    method public int getType();
218*344a7f5eSAndroid Build Coastguard Worker    method public int getUid();
219*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(android.os.Parcel, int);
220*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.media.Session2Token> CREATOR;
221*344a7f5eSAndroid Build Coastguard Worker    field public static final int TYPE_SESSION = 0; // 0x0
222*344a7f5eSAndroid Build Coastguard Worker    field public static final int TYPE_SESSION_SERVICE = 1; // 0x1
223*344a7f5eSAndroid Build Coastguard Worker  }
224*344a7f5eSAndroid Build Coastguard Worker
225*344a7f5eSAndroid Build Coastguard Worker}
226*344a7f5eSAndroid Build Coastguard Worker
227