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