1# 媒体子系统ChangeLog
2
3## cl.media.1 播放功能接口变更
4
5新增音视频播放接口[AVPlayer](../../../application-dev/reference/apis/js-apis-media.md#avplayer9)<sup>9+</sup>, 升级了状态机和错误码,推荐用户使用。旧版音频播放接口[AudioPlayer](../../../application-dev/reference/apis/js-apis-media.md#audioplayer)<sup>6+</sup>和视频播放接口[VideoPlayer](../../../application-dev/reference/apis/js-apis-media.md#videoplayer)<sup>8+</sup>停止维护。
6
7**变更影响**
8
9原有的接口暂时可继续使用,但是停止维护,建议使用新接口进行开发。
10
11**关键的接口/组件变更**
12
13新增接口如下:
14
15| 类名           | 新增接口声明                                                 |
16| -------------- | ------------------------------------------------------------ |
17| media          | createAVPlayer(callback: AsyncCallback\<AVPlayer>): void     |
18| media          | createAVPlayer() : Promise\<AVPlayer>                        |
19| media.AVPlayer | interface AVPlayer                                           |
20| media.AVPlayer | videoScaleType ?: VideoScaleType                             |
21| media.AVPlayer | url ?: string                                                |
22| media.AVPlayer | surfaceId ?: string                                          |
23| media.AVPlayer | stop(callback: AsyncCallback\<void>): void                   |
24| media.AVPlayer | stop(): Promise\<void>                                       |
25| media.AVPlayer | setVolume(volume: number): void                              |
26| media.AVPlayer | setSpeed(speed: PlaybackSpeed): void                         |
27| media.AVPlayer | setBitrate(bitrate: number): void                            |
28| media.AVPlayer | seek(timeMs: number, mode?:SeekMode): void                   |
29| media.AVPlayer | reset(callback: AsyncCallback\<void>): void                  |
30| media.AVPlayer | reset(): Promise\<void>                                      |
31| media.AVPlayer | release(callback: AsyncCallback\<void>): void                |
32| media.AVPlayer | release(): Promise\<void>                                    |
33| media.AVPlayer | readonly width: number                                       |
34| media.AVPlayer | readonly state: AVPlayerState                                |
35| media.AVPlayer | readonly height: number                                      |
36| media.AVPlayer | readonly duration: number                                    |
37| media.AVPlayer | readonly currentTime: number                                 |
38| media.AVPlayer | prepare(callback: AsyncCallback\<void>): void                |
39| media.AVPlayer | prepare(): Promise\<void>                                    |
40| media.AVPlayer | play(callback: AsyncCallback\<void>): void                   |
41| media.AVPlayer | play(): Promise\<void>                                       |
42| media.AVPlayer | pause(callback: AsyncCallback\<void>): void                  |
43| media.AVPlayer | pause(): Promise\<void>                                      |
44| media.AVPlayer | on(type: 'volumeChange', callback: Callback\<number>): void  |
45| media.AVPlayer | on(type: 'videoSizeChange', callback: (width: number, height: number) => void): void |
46| media.AVPlayer | on(type: 'timeUpdate', callback: Callback\<number>): void    |
47| media.AVPlayer | on(type: 'stateChange', callback: (state: AVPlayerState, reason: StateChangeReason) => void): void |
48| media.AVPlayer | on(type: 'startRenderFrame', callback: Callback\<void>): void |
49| media.AVPlayer | on(type: 'speedDone', callback: Callback\<number>): void     |
50| media.AVPlayer | on(type: 'seekDone', callback: Callback\<number>): void      |
51| media.AVPlayer | on(type: 'error', callback: ErrorCallback): void             |
52| media.AVPlayer | on(type: 'endOfStream', callback: Callback\<void>): void     |
53| media.AVPlayer | on(type: 'durationUpdate', callback: Callback\<number>): void |
54| media.AVPlayer | on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void |
55| media.AVPlayer | on(type: 'bitrateDone', callback: Callback\<number>): void   |
56| media.AVPlayer | on(type: 'availableBitrates', callback: (bitrates: Array\<number>) => void): void |
57| media.AVPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void |
58| media.AVPlayer | off(type: 'volumeChange'): void                              |
59| media.AVPlayer | off(type: 'videoSizeChange'): void                           |
60| media.AVPlayer | off(type: 'timeUpdate'): void                                |
61| media.AVPlayer | off(type: 'stateChange'): void                               |
62| media.AVPlayer | off(type: 'startRenderFrame'): void                          |
63| media.AVPlayer | off(type: 'speedDone'): void                                 |
64| media.AVPlayer | off(type: 'seekDone'): void                                  |
65| media.AVPlayer | off(type: 'error'): void                                     |
66| media.AVPlayer | off(type: 'endOfStream'): void                               |
67| media.AVPlayer | off(type: 'durationUpdate'): void                            |
68| media.AVPlayer | off(type: 'bufferingUpdate'): void                           |
69| media.AVPlayer | off(type: 'bitrateDone'): void                               |
70| media.AVPlayer | off(type: 'availableBitrates'): void                         |
71| media.AVPlayer | off(type: 'audioInterrupt'): void                            |
72| media.AVPlayer | loop: boolean                                                |
73| media.AVPlayer | getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void |
74| media.AVPlayer | getTrackDescription() : Promise\<Array\<MediaDescription>>   |
75| media.AVPlayer | fdSrc ?: AVFileDescriptor                                    |
76| media.AVPlayer | audioInterruptMode ?: audio.InterruptMode                    |
77| unnamed        | type AVPlayerState = 'idle' \| 'initialized' \| 'prepared' \| 'playing' \| 'paused' \| 'completed' \| 'stopped' \| 'released' \| 'error' |
78
79停止维护接口如下:
80
81| 类名              | 停止维护接口声明                                             |
82| ----------------- | ------------------------------------------------------------ |
83| media             | createVideoPlayer(callback: AsyncCallback\<VideoPlayer>): void |
84| media             | createVideoPlayer() : Promise\<VideoPlayer>                  |
85| media             | createAudioPlayer(): AudioPlayer                             |
86| media.AudioPlayer | interface AudioPlayer                                        |
87| media.AudioPlayer | play(): void                                                 |
88| media.AudioPlayer | release(): void                                              |
89| media.AudioPlayer | audioInterruptMode ?: audio.InterruptMode                    |
90| media.AudioPlayer | fdSrc: AVFileDescriptor                                      |
91| media.AudioPlayer | seek(timeMs: number): void                                   |
92| media.AudioPlayer | readonly duration: number                                    |
93| media.AudioPlayer | loop: boolean                                                |
94| media.AudioPlayer | readonly state: AudioState                                   |
95| media.AudioPlayer | getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void |
96| media.AudioPlayer | getTrackDescription() : Promise\<Array\<MediaDescription>>   |
97| media.AudioPlayer | on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void |
98| media.AudioPlayer | on(type: 'play' \| 'pause' \| 'stop' \| 'reset' \| 'dataLoad' \| 'finish' \| 'volumeChange', callback: () => void): void |
99| media.AudioPlayer | on(type: 'timeUpdate', callback: Callback\<number>): void    |
100| media.AudioPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void |
101| media.AudioPlayer | on(type: 'error', callback: ErrorCallback): void             |
102| media.AudioPlayer | setVolume(vol: number): void                                 |
103| media.AudioPlayer | pause(): void                                                |
104| media.AudioPlayer | readonly currentTime: number                                 |
105| media.AudioPlayer | stop(): void                                                 |
106| media.AudioPlayer | reset(): void                                                |
107| media.AudioPlayer | src: string                                                  |
108| media.VideoPlayer | interface VideoPlayer                                        |
109| media.VideoPlayer | play(callback: AsyncCallback\<void>): void                   |
110| media.VideoPlayer | play(): Promise\<void>                                       |
111| media.VideoPlayer | prepare(callback: AsyncCallback\<void>): void                |
112| media.VideoPlayer | prepare(): Promise\<void>                                    |
113| media.VideoPlayer | release(callback: AsyncCallback\<void>): void                |
114| media.VideoPlayer | release(): Promise\<void>                                    |
115| media.VideoPlayer | audioInterruptMode ?: audio.InterruptMode                    |
116| media.VideoPlayer | fdSrc: AVFileDescriptor                                      |
117| media.VideoPlayer | seek(timeMs: number, callback: AsyncCallback\<number>): void |
118| media.VideoPlayer | seek(timeMs: number, mode:SeekMode, callback: AsyncCallback\<number>): void |
119| media.VideoPlayer | seek(timeMs: number, mode?:SeekMode): Promise\<number>       |
120| media.VideoPlayer | readonly duration: number                                    |
121| media.VideoPlayer | loop: boolean                                                |
122| media.VideoPlayer | videoScaleType ?: VideoScaleType                             |
123| media.VideoPlayer | readonly state: VideoPlayState                               |
124| media.VideoPlayer | getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void |
125| media.VideoPlayer | getTrackDescription() : Promise\<Array\<MediaDescription>>   |
126| media.VideoPlayer | readonly height: number                                      |
127| media.VideoPlayer | on(type: 'playbackCompleted', callback: Callback\<void>): void |
128| media.VideoPlayer | on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void |
129| media.VideoPlayer | on(type: 'startRenderFrame', callback: Callback\<void>): void |
130| media.VideoPlayer | on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void |
131| media.VideoPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void |
132| media.VideoPlayer | on(type: 'error', callback: ErrorCallback): void             |
133| media.VideoPlayer | setDisplaySurface(surfaceId: string, callback: AsyncCallback\<void>): void |
134| media.VideoPlayer | setDisplaySurface(surfaceId: string): Promise\<void>         |
135| media.VideoPlayer | setVolume(vol: number, callback: AsyncCallback\<void>): void |
136| media.VideoPlayer | setVolume(vol: number): Promise\<void>                       |
137| media.VideoPlayer | url: string                                                  |
138| media.VideoPlayer | pause(callback: AsyncCallback\<void>): void                  |
139| media.VideoPlayer | pause(): Promise\<void>                                      |
140| media.VideoPlayer | readonly currentTime: number                                 |
141| media.VideoPlayer | setSpeed(speed:number, callback: AsyncCallback\<number>): void |
142| media.VideoPlayer | setSpeed(speed:number): Promise\<number>                     |
143| media.VideoPlayer | stop(callback: AsyncCallback\<void>): void                   |
144| media.VideoPlayer | stop(): Promise\<void>                                       |
145| media.VideoPlayer | readonly width: number                                       |
146| media.VideoPlayer | reset(callback: AsyncCallback\<void>): void                  |
147| media.VideoPlayer | reset(): Promise\<void>                                      |
148| unnamed           | type AudioState = 'idle' \| 'playing' \| 'paused' \| 'stopped' \| 'error' |
149| unnamed           | type VideoPlayState = 'idle' \| 'prepared' \| 'playing' \| 'paused' \| 'stopped' \| 'error' |
150
151**适配指导**
152
153请参考各接口的[API参考](../../../application-dev/reference/apis/js-apis-media.md)
154
155## cl.media.2 录制功能接口变更
156
157新增音视频录制接口[AVRecorder](../../../application-dev/reference/apis/js-apis-media.md#avrecorder9)<sup>9+</sup>, 升级了状态机和错误码,推荐用户使用。旧版音频录制接口[AudioRecorder](../../../application-dev/reference/apis/js-apis-media.md#audiorecorder)<sup>6+</sup>和视频录制接口[VideoRecorder](../../../application-dev/reference/apis/js-apis-media.md#videorecorder9)<sup>9+</sup>停止维护。
158
159新旧录制接口共用的[AudioSourceType](../../../application-dev/reference/apis/js-apis-media.md#audiosourcetype9)和[VideoSourceType](../../../application-dev/reference/apis/js-apis-media.md#videosourcetype9)接口,变更为非系统接口。
160
161**变更影响**
162
163原有的接口[AudioRecorder](../../../application-dev/reference/apis/js-apis-media.md#audiorecorder)<sup>6+</sup>和[VideoRecorder](../../../application-dev/reference/apis/js-apis-media.md#videorecorder9)<sup>9+</sup>暂时可继续使用,但是停止维护,建议使用新接口进行开发[AVRecorder](../../../application-dev/reference/apis/js-apis-media.md#avrecorder9)<sup>9+</sup>。
164
165**关键的接口/组件变更**
166
167新增接口如下:
168
169| 类名                    | 新增接口声明                                                 |
170| ----------------------- | ------------------------------------------------------------ |
171| media                   | createAVRecorder(callback: AsyncCallback\<AVRecorder>): void |
172| media                   | createAVRecorder() : Promise\<AVRecorder>                    |
173| media.AVRecorder        | interface AVRecorder                                         |
174| media.AVRecorder        | prepare(config: AVRecorderConfig, callback: AsyncCallback\<void>): void |
175| media.AVRecorder        | prepare(config: AVRecorderConfig): Promise\<void>            |
176| media.AVRecorder        | release(callback: AsyncCallback\<void>): void                |
177| media.AVRecorder        | release(): Promise\<void>                                    |
178| media.AVRecorder        | readonly state: AVRecorderState                              |
179| media.AVRecorder        | on(type: 'stateChange', callback: (state: AVRecorderState, reason: StateChangeReason) => void): void |
180| media.AVRecorder        | on(type: 'error', callback: ErrorCallback): void             |
181| media.AVRecorder        | resume(callback: AsyncCallback\<void>): void                 |
182| media.AVRecorder        | resume(): Promise\<void>                                     |
183| media.AVRecorder        | start(callback: AsyncCallback\<void>): void                  |
184| media.AVRecorder        | start(): Promise\<void>                                      |
185| media.AVRecorder        | off(type: 'stateChange'): void                               |
186| media.AVRecorder        | off(type: 'error'): void                                     |
187| media.AVRecorder        | pause(callback: AsyncCallback\<void>): void                  |
188| media.AVRecorder        | pause(): Promise\<void>                                      |
189| media.AVRecorder        | stop(callback: AsyncCallback\<void>): void                   |
190| media.AVRecorder        | stop(): Promise\<void>                                       |
191| media.AVRecorder        | reset(callback: AsyncCallback\<void>): void                  |
192| media.AVRecorder        | reset(): Promise\<void>                                      |
193| media.AVRecorder        | getInputSurface(callback: AsyncCallback\<string>): void      |
194| media.AVRecorder        | getInputSurface(): Promise\<string>                          |
195| media.AVRecorderConfig  | videoSourceType?: VideoSourceType                            |
196| media.AVRecorderConfig  | audioSourceType?: AudioSourceType                            |
197| media.AVRecorderConfig  | profile: AVRecorderProfile                                   |
198| media.AVRecorderConfig  | rotation?: number                                            |
199| media.AVRecorderConfig  | url: string                                                  |
200| media.AVRecorderConfig  | location?: Location                                          |
201| media.AVRecorderConfig  | interface AVRecorderConfig                                   |
202| media.AVRecorderProfile | videoBitrate?: number                                        |
203| media.AVRecorderProfile | videoCodec?: CodecMimeType                                   |
204| media.AVRecorderProfile | audioCodec?: CodecMimeType                                   |
205| media.AVRecorderProfile | videoFrameRate?: number                                      |
206| media.AVRecorderProfile | videoFrameHeight?: number                                    |
207| media.AVRecorderProfile | audioSampleRate?: number                                     |
208| media.AVRecorderProfile | audioBitrate?: number                                        |
209| media.AVRecorderProfile | videoFrameWidth?: number                                     |
210| media.AVRecorderProfile | audioChannels?: number                                       |
211| media.AVRecorderProfile | fileFormat: ContainerFormatType                              |
212| media.AVRecorderProfile | interface AVRecorderProfile                                  |
213| unnamed                 | type AVRecorderState = 'idle' \| 'prepared' \| 'started' \| 'paused' \| 'stopped' \| 'released' \| 'error' |
214
215停止维护接口如下:
216
217| 类名                       | 停止维护接口声明                                             |
218| -------------------------- | ------------------------------------------------------------ |
219| media                      | createVideoRecorder(callback: AsyncCallback\<VideoRecorder>): void |
220| media                      | createVideoRecorder(): Promise\<VideoRecorder>               |
221| media                      | createAudioRecorder(): AudioRecorder                         |
222| media.AudioRecorder        | interface AudioRecorder                                      |
223| media.AudioRecorder        | prepare(config: AudioRecorderConfig): void                   |
224| media.AudioRecorder        | release(): void                                              |
225| media.AudioRecorder        | on(type: 'prepare' \| 'start' \| 'pause' \| 'resume' \| 'stop' \| 'release' \| 'reset', callback: () => void): void |
226| media.AudioRecorder        | on(type: 'error', callback: ErrorCallback): void             |
227| media.AudioRecorder        | resume(): void                                               |
228| media.AudioRecorder        | start(): void                                                |
229| media.AudioRecorder        | pause(): void                                                |
230| media.AudioRecorder        | stop(): void                                                 |
231| media.AudioRecorder        | reset(): void                                                |
232| media.AudioRecorderConfig  | audioSampleRate?: number                                     |
233| media.AudioRecorderConfig  | location?: Location                                          |
234| media.AudioRecorderConfig  | fileFormat?: ContainerFormatType                             |
235| media.AudioRecorderConfig  | interface AudioRecorderConfig                                |
236| media.AudioRecorderConfig  | audioEncoder?: AudioEncoder                                  |
237| media.AudioRecorderConfig  | audioEncodeBitRate?: number                                  |
238| media.AudioRecorderConfig  | numberOfChannels?: number                                    |
239| media.AudioRecorderConfig  | format?: AudioOutputFormat                                   |
240| media.AudioRecorderConfig  | uri: string                                                  |
241| media.AudioRecorderConfig  | audioEncoderMime?: CodecMimeType                             |
242| media.VideoRecorder        | interface VideoRecorder                                      |
243| media.VideoRecorder        | prepare(config: VideoRecorderConfig, callback: AsyncCallback\<void>): void |
244| media.VideoRecorder        | prepare(config: VideoRecorderConfig): Promise\<void>         |
245| media.VideoRecorder        | release(callback: AsyncCallback\<void>): void                |
246| media.VideoRecorder        | release(): Promise\<void>                                    |
247| media.VideoRecorder        | readonly state: VideoRecordState                             |
248| media.VideoRecorder        | on(type: 'error', callback: ErrorCallback): void             |
249| media.VideoRecorder        | resume(callback: AsyncCallback\<void>): void                 |
250| media.VideoRecorder        | resume(): Promise\<void>                                     |
251| media.VideoRecorder        | start(callback: AsyncCallback\<void>): void                  |
252| media.VideoRecorder        | start(): Promise\<void>                                      |
253| media.VideoRecorder        | pause(callback: AsyncCallback\<void>): void                  |
254| media.VideoRecorder        | pause(): Promise\<void>                                      |
255| media.VideoRecorder        | stop(callback: AsyncCallback\<void>): void                   |
256| media.VideoRecorder        | stop(): Promise\<void>                                       |
257| media.VideoRecorder        | reset(callback: AsyncCallback\<void>): void                  |
258| media.VideoRecorder        | reset(): Promise\<void>                                      |
259| media.VideoRecorder        | getInputSurface(callback: AsyncCallback\<string>): void      |
260| media.VideoRecorder        | getInputSurface(): Promise\<string>                          |
261| media.VideoRecorderConfig  | videoSourceType: VideoSourceType                             |
262| media.VideoRecorderConfig  | audioSourceType?: AudioSourceType                            |
263| media.VideoRecorderConfig  | profile: VideoRecorderProfile                                |
264| media.VideoRecorderConfig  | rotation?: number                                            |
265| media.VideoRecorderConfig  | url: string                                                  |
266| media.VideoRecorderConfig  | location?: Location                                          |
267| media.VideoRecorderConfig  | interface VideoRecorderConfig                                |
268| media.VideoRecorderProfile | readonly videoBitrate: number                                |
269| media.VideoRecorderProfile | readonly videoCodec: CodecMimeType                           |
270| media.VideoRecorderProfile | readonly audioCodec: CodecMimeType                           |
271| media.VideoRecorderProfile | readonly videoFrameRate: number                              |
272| media.VideoRecorderProfile | readonly videoFrameHeight: number                            |
273| media.VideoRecorderProfile | readonly audioSampleRate: number                             |
274| media.VideoRecorderProfile | readonly audioBitrate: number                                |
275| media.VideoRecorderProfile | readonly videoFrameWidth: number                             |
276| media.VideoRecorderProfile | readonly audioChannels: number                               |
277| media.VideoRecorderProfile | readonly fileFormat: ContainerFormatType                     |
278| media.VideoRecorderProfile | interface VideoRecorderProfile                               |
279| unnamed                    | type VideoRecordState = 'idle' \| 'prepared' \| 'playing' \| 'paused' \| 'stopped' \| 'error' |
280
281变更接口如下:
282
283| 类名                  | 接口声明                                                     | 变更前能力                                      | 变更后能力                                   | 变更前是否为系统接口 | 变更后是否为系统接口 |
284| --------------------- | ------------------------------------------------------------ | ----------------------------------------------- | -------------------------------------------- | -------------------- | -------------------- |
285| media.AudioSourceType | enum AudioSourceType { /** * default audio source type. * @since 9 * @syscap SystemCapability.Multimedia.Media.AVRecorder */ AUDIO_SOURCE_TYPE_DEFAULT = 0, /** * source type mic. * @since 9 * @syscap SystemCapability.Multimedia.Media.AVRecorder */ AUDIO_SOURCE_TYPE_MIC = 1, } | SystemCapability.Multimedia.Media.VideoRecorder | SystemCapability.Multimedia.Media.AVRecorder | 是                   | 否                   |
286| media.VideoSourceType | enum VideoSourceType { /** * surface raw data. * @since 9 * @syscap SystemCapability.Multimedia.Media.AVRecorder */ VIDEO_SOURCE_TYPE_SURFACE_YUV = 0, /** * surface ES data. * @since 9 * @syscap SystemCapability.Multimedia.Media.AVRecorder */ VIDEO_SOURCE_TYPE_SURFACE_ES = 1, } | SystemCapability.Multimedia.Media.VideoRecorder | SystemCapability.Multimedia.Media.AVRecorder | 是                   | 否                   |
287
288**适配指导**
289
290请参考各接口的[API参考](../../../application-dev/reference/apis/js-apis-media.md)
291
292## cl.media.3 错误码变更
293
294新增标准的错误枚举类型[AVErrorCode9](../../../application-dev/reference/apis/js-apis-media.md#averrorcode)<sup>9+</sup>替代原有错误枚举类型[MediaErrorCode](../../../application-dev/reference/apis/js-apis-media.md#mediaerrorcode)<sup>8+</sup>。
295
296**变更影响**
297
298以往接口返回错误码枚举类型为[MediaErrorCode](../../../application-dev/reference/apis/js-apis-media.md#mediaerrorcode)<sup>8+</sup>不变。新增接口错误码类型均采用[AVErrorCode9](../../../application-dev/reference/apis/js-apis-media.md#averrorcode)<sup>9+</sup>。
299
300**关键的接口/组件变更**
301
302新增接口如下:
303
304| 类名              | 新增错误码声明                                               |
305| ----------------- | ------------------------------------------------------------ |
306| media.AVErrorCode | enum AVErrorCode { /** * operation success. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_OK = 0, /** * permission denied. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_NO_PERMISSION = 201, /** * invalid parameter. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_INVALID_PARAMETER = 401, /** * the api is not supported in the current version * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_UNSUPPORT_CAPABILITY = 801, /** * the system memory is insufficient or the number of services reaches the upper limit * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_NO_MEMORY = 5400101, /** * current status does not allow or do not have permission to perform this operation * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_OPERATE_NOT_PERMIT = 5400102, /** * data flow exception information * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_IO = 5400103, /** * system or network response timeout. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_TIMEOUT = 5400104, /** * service process died. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_SERVICE_DIED = 5400105, /** * unsupported media format * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_UNSUPPORT_FORMAT = 5400106, } |
307
308停止维护接口如下:
309
310| 类名                 | 停止维护错误码声明                                           |
311| -------------------- | ------------------------------------------------------------ |
312| media.MediaErrorCode | enum MediaErrorCode { /** * operation success. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_OK = 0, /** * malloc or new memory failed. maybe system have no memory. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_NO_MEMORY = 1, /** * no permission for the operation. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_OPERATION_NOT_PERMIT = 2, /** * invalid argument. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_INVALID_VAL = 3, /** * an I/O error occurred. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_IO = 4, /** * operation time out. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_TIMEOUT = 5, /** * unknown error. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_UNKNOWN = 6, /** * media service died. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_SERVICE_DIED = 7, /** * operation is not permit in current state. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_INVALID_STATE = 8, /** * operation is not supported in current version. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_UNSUPPORTED = 9, } |