1e41f4b71Sopenharmony_ci# Media Subsystem ChangeLog
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci## cl.media.1 API Change of the Playback Function
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ciAdded the [AVPlayer](../../../application-dev/reference/apis/js-apis-media.md#avplayer9)<sup>9+</sup> API for audio and video playback, with the updated state machine and error codes, which is recommended. The following APIs for audio playback and video playback are no longer maintained: [AudioPlayer](../../../application-dev/reference/apis/js-apis-media.md#audioplayer)<sup>6+</sup> and [VideoPlayer](../../../application-dev/reference/apis/js-apis-media.md#videoplayer)<sup>8+</sup>.
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci**Change Impacts**
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ciThe original APIs can still be used but are no longer maintained. You are advised to use the new API instead.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci**Key API/Component Changes**
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ciAdded APIs
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci| Class          | Declaration                                                |
16e41f4b71Sopenharmony_ci| -------------- | ------------------------------------------------------------ |
17e41f4b71Sopenharmony_ci| media          | createAVPlayer(callback: AsyncCallback\<AVPlayer>): void     |
18e41f4b71Sopenharmony_ci| media          | createAVPlayer() : Promise\<AVPlayer>                        |
19e41f4b71Sopenharmony_ci| media.AVPlayer | interface AVPlayer                                           |
20e41f4b71Sopenharmony_ci| media.AVPlayer | videoScaleType ?: VideoScaleType                             |
21e41f4b71Sopenharmony_ci| media.AVPlayer | url ?: string                                                |
22e41f4b71Sopenharmony_ci| media.AVPlayer | surfaceId ?: string                                          |
23e41f4b71Sopenharmony_ci| media.AVPlayer | stop(callback: AsyncCallback\<void>): void                   |
24e41f4b71Sopenharmony_ci| media.AVPlayer | stop(): Promise\<void>                                       |
25e41f4b71Sopenharmony_ci| media.AVPlayer | setVolume(volume: number): void                              |
26e41f4b71Sopenharmony_ci| media.AVPlayer | setSpeed(speed: PlaybackSpeed): void                         |
27e41f4b71Sopenharmony_ci| media.AVPlayer | setBitrate(bitrate: number): void                            |
28e41f4b71Sopenharmony_ci| media.AVPlayer | seek(timeMs: number, mode?:SeekMode): void                   |
29e41f4b71Sopenharmony_ci| media.AVPlayer | reset(callback: AsyncCallback\<void>): void                  |
30e41f4b71Sopenharmony_ci| media.AVPlayer | reset(): Promise\<void>                                      |
31e41f4b71Sopenharmony_ci| media.AVPlayer | release(callback: AsyncCallback\<void>): void                |
32e41f4b71Sopenharmony_ci| media.AVPlayer | release(): Promise\<void>                                    |
33e41f4b71Sopenharmony_ci| media.AVPlayer | readonly width: number                                       |
34e41f4b71Sopenharmony_ci| media.AVPlayer | readonly state: AVPlayerState                                |
35e41f4b71Sopenharmony_ci| media.AVPlayer | readonly height: number                                      |
36e41f4b71Sopenharmony_ci| media.AVPlayer | readonly duration: number                                    |
37e41f4b71Sopenharmony_ci| media.AVPlayer | readonly currentTime: number                                 |
38e41f4b71Sopenharmony_ci| media.AVPlayer | prepare(callback: AsyncCallback\<void>): void                |
39e41f4b71Sopenharmony_ci| media.AVPlayer | prepare(): Promise\<void>                                    |
40e41f4b71Sopenharmony_ci| media.AVPlayer | play(callback: AsyncCallback\<void>): void                   |
41e41f4b71Sopenharmony_ci| media.AVPlayer | play(): Promise\<void>                                       |
42e41f4b71Sopenharmony_ci| media.AVPlayer | pause(callback: AsyncCallback\<void>): void                  |
43e41f4b71Sopenharmony_ci| media.AVPlayer | pause(): Promise\<void>                                      |
44e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'volumeChange', callback: Callback\<number>): void  |
45e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'videoSizeChange', callback: (width: number, height: number) => void): void |
46e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'timeUpdate', callback: Callback\<number>): void    |
47e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'stateChange', callback: (state: AVPlayerState, reason: StateChangeReason) => void): void |
48e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'startRenderFrame', callback: Callback\<void>): void |
49e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'speedDone', callback: Callback\<number>): void     |
50e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'seekDone', callback: Callback\<number>): void      |
51e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'error', callback: ErrorCallback): void             |
52e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'endOfStream', callback: Callback\<void>): void     |
53e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'durationUpdate', callback: Callback\<number>): void |
54e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void |
55e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'bitrateDone', callback: Callback\<number>): void   |
56e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'availableBitrates', callback: (bitrates: Array\<number>) => void): void |
57e41f4b71Sopenharmony_ci| media.AVPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void |
58e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'volumeChange'): void                              |
59e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'videoSizeChange'): void                           |
60e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'timeUpdate'): void                                |
61e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'stateChange'): void                               |
62e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'startRenderFrame'): void                          |
63e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'speedDone'): void                                 |
64e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'seekDone'): void                                  |
65e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'error'): void                                     |
66e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'endOfStream'): void                               |
67e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'durationUpdate'): void                            |
68e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'bufferingUpdate'): void                           |
69e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'bitrateDone'): void                               |
70e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'availableBitrates'): void                         |
71e41f4b71Sopenharmony_ci| media.AVPlayer | off(type: 'audioInterrupt'): void                            |
72e41f4b71Sopenharmony_ci| media.AVPlayer | loop: boolean                                                |
73e41f4b71Sopenharmony_ci| media.AVPlayer | getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void |
74e41f4b71Sopenharmony_ci| media.AVPlayer | getTrackDescription() : Promise\<Array\<MediaDescription>>   |
75e41f4b71Sopenharmony_ci| media.AVPlayer | fdSrc ?: AVFileDescriptor                                    |
76e41f4b71Sopenharmony_ci| media.AVPlayer | audioInterruptMode ?: audio.InterruptMode                    |
77e41f4b71Sopenharmony_ci| unnamed        | type AVPlayerState = 'idle' \| 'initialized' \| 'prepared' \| 'playing' \| 'paused' \| 'completed' \| 'stopped' \| 'released' \| 'error' |
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ciAPIs no longer maintained
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci| Class             | Declaration                                            |
82e41f4b71Sopenharmony_ci| ----------------- | ------------------------------------------------------------ |
83e41f4b71Sopenharmony_ci| media             | createVideoPlayer(callback: AsyncCallback\<VideoPlayer>): void |
84e41f4b71Sopenharmony_ci| media             | createVideoPlayer() : Promise\<VideoPlayer>                  |
85e41f4b71Sopenharmony_ci| media             | createAudioPlayer(): AudioPlayer                             |
86e41f4b71Sopenharmony_ci| media.AudioPlayer | interface AudioPlayer                                        |
87e41f4b71Sopenharmony_ci| media.AudioPlayer | play(): void                                                 |
88e41f4b71Sopenharmony_ci| media.AudioPlayer | release(): void                                              |
89e41f4b71Sopenharmony_ci| media.AudioPlayer | audioInterruptMode ?: audio.InterruptMode                    |
90e41f4b71Sopenharmony_ci| media.AudioPlayer | fdSrc: AVFileDescriptor                                      |
91e41f4b71Sopenharmony_ci| media.AudioPlayer | seek(timeMs: number): void                                   |
92e41f4b71Sopenharmony_ci| media.AudioPlayer | readonly duration: number                                    |
93e41f4b71Sopenharmony_ci| media.AudioPlayer | loop: boolean                                                |
94e41f4b71Sopenharmony_ci| media.AudioPlayer | readonly state: AudioState                                   |
95e41f4b71Sopenharmony_ci| media.AudioPlayer | getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void |
96e41f4b71Sopenharmony_ci| media.AudioPlayer | getTrackDescription() : Promise\<Array\<MediaDescription>>   |
97e41f4b71Sopenharmony_ci| media.AudioPlayer | on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void |
98e41f4b71Sopenharmony_ci| media.AudioPlayer | on(type: 'play' \| 'pause' \| 'stop' \| 'reset' \| 'dataLoad' \| 'finish' \| 'volumeChange', callback: () => void): void |
99e41f4b71Sopenharmony_ci| media.AudioPlayer | on(type: 'timeUpdate', callback: Callback\<number>): void    |
100e41f4b71Sopenharmony_ci| media.AudioPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void |
101e41f4b71Sopenharmony_ci| media.AudioPlayer | on(type: 'error', callback: ErrorCallback): void             |
102e41f4b71Sopenharmony_ci| media.AudioPlayer | setVolume(vol: number): void                                 |
103e41f4b71Sopenharmony_ci| media.AudioPlayer | pause(): void                                                |
104e41f4b71Sopenharmony_ci| media.AudioPlayer | readonly currentTime: number                                 |
105e41f4b71Sopenharmony_ci| media.AudioPlayer | stop(): void                                                 |
106e41f4b71Sopenharmony_ci| media.AudioPlayer | reset(): void                                                |
107e41f4b71Sopenharmony_ci| media.AudioPlayer | src: string                                                  |
108e41f4b71Sopenharmony_ci| media.VideoPlayer | interface VideoPlayer                                        |
109e41f4b71Sopenharmony_ci| media.VideoPlayer | play(callback: AsyncCallback\<void>): void                   |
110e41f4b71Sopenharmony_ci| media.VideoPlayer | play(): Promise\<void>                                       |
111e41f4b71Sopenharmony_ci| media.VideoPlayer | prepare(callback: AsyncCallback\<void>): void                |
112e41f4b71Sopenharmony_ci| media.VideoPlayer | prepare(): Promise\<void>                                    |
113e41f4b71Sopenharmony_ci| media.VideoPlayer | release(callback: AsyncCallback\<void>): void                |
114e41f4b71Sopenharmony_ci| media.VideoPlayer | release(): Promise\<void>                                    |
115e41f4b71Sopenharmony_ci| media.VideoPlayer | audioInterruptMode ?: audio.InterruptMode                    |
116e41f4b71Sopenharmony_ci| media.VideoPlayer | fdSrc: AVFileDescriptor                                      |
117e41f4b71Sopenharmony_ci| media.VideoPlayer | seek(timeMs: number, callback: AsyncCallback\<number>): void |
118e41f4b71Sopenharmony_ci| media.VideoPlayer | seek(timeMs: number, mode:SeekMode, callback: AsyncCallback\<number>): void |
119e41f4b71Sopenharmony_ci| media.VideoPlayer | seek(timeMs: number, mode?:SeekMode): Promise\<number>       |
120e41f4b71Sopenharmony_ci| media.VideoPlayer | readonly duration: number                                    |
121e41f4b71Sopenharmony_ci| media.VideoPlayer | loop: boolean                                                |
122e41f4b71Sopenharmony_ci| media.VideoPlayer | videoScaleType ?: VideoScaleType                             |
123e41f4b71Sopenharmony_ci| media.VideoPlayer | readonly state: VideoPlayState                               |
124e41f4b71Sopenharmony_ci| media.VideoPlayer | getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void |
125e41f4b71Sopenharmony_ci| media.VideoPlayer | getTrackDescription() : Promise\<Array\<MediaDescription>>   |
126e41f4b71Sopenharmony_ci| media.VideoPlayer | readonly height: number                                      |
127e41f4b71Sopenharmony_ci| media.VideoPlayer | on(type: 'playbackCompleted', callback: Callback\<void>): void |
128e41f4b71Sopenharmony_ci| media.VideoPlayer | on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void |
129e41f4b71Sopenharmony_ci| media.VideoPlayer | on(type: 'startRenderFrame', callback: Callback\<void>): void |
130e41f4b71Sopenharmony_ci| media.VideoPlayer | on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void |
131e41f4b71Sopenharmony_ci| media.VideoPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void |
132e41f4b71Sopenharmony_ci| media.VideoPlayer | on(type: 'error', callback: ErrorCallback): void             |
133e41f4b71Sopenharmony_ci| media.VideoPlayer | setDisplaySurface(surfaceId: string, callback: AsyncCallback\<void>): void |
134e41f4b71Sopenharmony_ci| media.VideoPlayer | setDisplaySurface(surfaceId: string): Promise\<void>         |
135e41f4b71Sopenharmony_ci| media.VideoPlayer | setVolume(vol: number, callback: AsyncCallback\<void>): void |
136e41f4b71Sopenharmony_ci| media.VideoPlayer | setVolume(vol: number): Promise\<void>                       |
137e41f4b71Sopenharmony_ci| media.VideoPlayer | url: string                                                  |
138e41f4b71Sopenharmony_ci| media.VideoPlayer | pause(callback: AsyncCallback\<void>): void                  |
139e41f4b71Sopenharmony_ci| media.VideoPlayer | pause(): Promise\<void>                                      |
140e41f4b71Sopenharmony_ci| media.VideoPlayer | readonly currentTime: number                                 |
141e41f4b71Sopenharmony_ci| media.VideoPlayer | setSpeed(speed:number, callback: AsyncCallback\<number>): void |
142e41f4b71Sopenharmony_ci| media.VideoPlayer | setSpeed(speed:number): Promise\<number>                     |
143e41f4b71Sopenharmony_ci| media.VideoPlayer | stop(callback: AsyncCallback\<void>): void                   |
144e41f4b71Sopenharmony_ci| media.VideoPlayer | stop(): Promise\<void>                                       |
145e41f4b71Sopenharmony_ci| media.VideoPlayer | readonly width: number                                       |
146e41f4b71Sopenharmony_ci| media.VideoPlayer | reset(callback: AsyncCallback\<void>): void                  |
147e41f4b71Sopenharmony_ci| media.VideoPlayer | reset(): Promise\<void>                                      |
148e41f4b71Sopenharmony_ci| unnamed           | type AudioState = 'idle' \| 'playing' \| 'paused' \| 'stopped' \| 'error' |
149e41f4b71Sopenharmony_ci| unnamed           | type VideoPlayState = 'idle' \| 'prepared' \| 'playing' \| 'paused' \| 'stopped' \| 'error' |
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci**Adaptation Guide**
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ciFor details, see the [reference](../../../application-dev/reference/apis/js-apis-media.md) for each API.
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci## cl.media.2 API Change of the Recording Function
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ciAdded the [AVRecorder](../../../application-dev/reference/apis/js-apis-media.md#avrecorder9)<sup>9+</sup> API for audio and video recording, with the updated state machine and error codes, which is recommended. The following APIs for audio recording and video recording are no longer maintained: [AudioRecorder](../../../application-dev/reference/apis/js-apis-media.md#audiorecorder)<sup>6+</sup> and [VideoRecorder](../../../application-dev/reference/apis/js-apis-media.md#videorecorder9)<sup>9+</sup>.
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ciThe [AudioSourceType](../../../application-dev/reference/apis/js-apis-media.md#audiosourcetype9) and [VideoSourceType](../../../application-dev/reference/apis/js-apis-media.md#videosourcetype9) APIs shared by the old and new recording APIs are changed to non-system APIs.
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci**Change Impacts**
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ciThe [AudioRecorder](../../../application-dev/reference/apis/js-apis-media.md#audiorecorder)<sup>6+</sup> and [VideoRecorder](../../../application-dev/reference/apis/js-apis-media.md#videorecorder9)<sup>9+</sup> APIs can still be used but are no longer maintained. You are advised to use the [AVRecorder](../../../application-dev/reference/apis/js-apis-media.md#avrecorder9)<sup>9+</sup> API instead.
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci**Key API/Component Changes**
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ciAdded APIs
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ci| Class                   | Declaration                                                |
170e41f4b71Sopenharmony_ci| ----------------------- | ------------------------------------------------------------ |
171e41f4b71Sopenharmony_ci| media                   | createAVRecorder(callback: AsyncCallback\<AVRecorder>): void |
172e41f4b71Sopenharmony_ci| media                   | createAVRecorder() : Promise\<AVRecorder>                    |
173e41f4b71Sopenharmony_ci| media.AVRecorder        | interface AVRecorder                                         |
174e41f4b71Sopenharmony_ci| media.AVRecorder        | prepare(config: AVRecorderConfig, callback: AsyncCallback\<void>): void |
175e41f4b71Sopenharmony_ci| media.AVRecorder        | prepare(config: AVRecorderConfig): Promise\<void>            |
176e41f4b71Sopenharmony_ci| media.AVRecorder        | release(callback: AsyncCallback\<void>): void                |
177e41f4b71Sopenharmony_ci| media.AVRecorder        | release(): Promise\<void>                                    |
178e41f4b71Sopenharmony_ci| media.AVRecorder        | readonly state: AVRecorderState                              |
179e41f4b71Sopenharmony_ci| media.AVRecorder        | on(type: 'stateChange', callback: (state: AVRecorderState, reason: StateChangeReason) => void): void |
180e41f4b71Sopenharmony_ci| media.AVRecorder        | on(type: 'error', callback: ErrorCallback): void             |
181e41f4b71Sopenharmony_ci| media.AVRecorder        | resume(callback: AsyncCallback\<void>): void                 |
182e41f4b71Sopenharmony_ci| media.AVRecorder        | resume(): Promise\<void>                                     |
183e41f4b71Sopenharmony_ci| media.AVRecorder        | start(callback: AsyncCallback\<void>): void                  |
184e41f4b71Sopenharmony_ci| media.AVRecorder        | start(): Promise\<void>                                      |
185e41f4b71Sopenharmony_ci| media.AVRecorder        | off(type: 'stateChange'): void                               |
186e41f4b71Sopenharmony_ci| media.AVRecorder        | off(type: 'error'): void                                     |
187e41f4b71Sopenharmony_ci| media.AVRecorder        | pause(callback: AsyncCallback\<void>): void                  |
188e41f4b71Sopenharmony_ci| media.AVRecorder        | pause(): Promise\<void>                                      |
189e41f4b71Sopenharmony_ci| media.AVRecorder        | stop(callback: AsyncCallback\<void>): void                   |
190e41f4b71Sopenharmony_ci| media.AVRecorder        | stop(): Promise\<void>                                       |
191e41f4b71Sopenharmony_ci| media.AVRecorder        | reset(callback: AsyncCallback\<void>): void                  |
192e41f4b71Sopenharmony_ci| media.AVRecorder        | reset(): Promise\<void>                                      |
193e41f4b71Sopenharmony_ci| media.AVRecorder        | getInputSurface(callback: AsyncCallback\<string>): void      |
194e41f4b71Sopenharmony_ci| media.AVRecorder        | getInputSurface(): Promise\<string>                          |
195e41f4b71Sopenharmony_ci| media.AVRecorderConfig  | videoSourceType?: VideoSourceType                            |
196e41f4b71Sopenharmony_ci| media.AVRecorderConfig  | audioSourceType?: AudioSourceType                            |
197e41f4b71Sopenharmony_ci| media.AVRecorderConfig  | profile: AVRecorderProfile                                   |
198e41f4b71Sopenharmony_ci| media.AVRecorderConfig  | rotation?: number                                            |
199e41f4b71Sopenharmony_ci| media.AVRecorderConfig  | url: string                                                  |
200e41f4b71Sopenharmony_ci| media.AVRecorderConfig  | location?: Location                                          |
201e41f4b71Sopenharmony_ci| media.AVRecorderConfig  | interface AVRecorderConfig                                   |
202e41f4b71Sopenharmony_ci| media.AVRecorderProfile | videoBitrate?: number                                        |
203e41f4b71Sopenharmony_ci| media.AVRecorderProfile | videoCodec?: CodecMimeType                                   |
204e41f4b71Sopenharmony_ci| media.AVRecorderProfile | audioCodec?: CodecMimeType                                   |
205e41f4b71Sopenharmony_ci| media.AVRecorderProfile | videoFrameRate?: number                                      |
206e41f4b71Sopenharmony_ci| media.AVRecorderProfile | videoFrameHeight?: number                                    |
207e41f4b71Sopenharmony_ci| media.AVRecorderProfile | audioSampleRate?: number                                     |
208e41f4b71Sopenharmony_ci| media.AVRecorderProfile | audioBitrate?: number                                        |
209e41f4b71Sopenharmony_ci| media.AVRecorderProfile | videoFrameWidth?: number                                     |
210e41f4b71Sopenharmony_ci| media.AVRecorderProfile | audioChannels?: number                                       |
211e41f4b71Sopenharmony_ci| media.AVRecorderProfile | fileFormat: ContainerFormatType                              |
212e41f4b71Sopenharmony_ci| media.AVRecorderProfile | interface AVRecorderProfile                                  |
213e41f4b71Sopenharmony_ci| unnamed                 | type AVRecorderState = 'idle' \| 'prepared' \| 'started' \| 'paused' \| 'stopped' \| 'released' \| 'error' |
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ciAPIs no longer maintained
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci| Class                      | Declaration                                            |
218e41f4b71Sopenharmony_ci| -------------------------- | ------------------------------------------------------------ |
219e41f4b71Sopenharmony_ci| media                      | createVideoRecorder(callback: AsyncCallback\<VideoRecorder>): void |
220e41f4b71Sopenharmony_ci| media                      | createVideoRecorder(): Promise\<VideoRecorder>               |
221e41f4b71Sopenharmony_ci| media                      | createAudioRecorder(): AudioRecorder                         |
222e41f4b71Sopenharmony_ci| media.AudioRecorder        | interface AudioRecorder                                      |
223e41f4b71Sopenharmony_ci| media.AudioRecorder        | prepare(config: AudioRecorderConfig): void                   |
224e41f4b71Sopenharmony_ci| media.AudioRecorder        | release(): void                                              |
225e41f4b71Sopenharmony_ci| media.AudioRecorder        | on(type: 'prepare' \| 'start' \| 'pause' \| 'resume' \| 'stop' \| 'release' \| 'reset', callback: () => void): void |
226e41f4b71Sopenharmony_ci| media.AudioRecorder        | on(type: 'error', callback: ErrorCallback): void             |
227e41f4b71Sopenharmony_ci| media.AudioRecorder        | resume(): void                                               |
228e41f4b71Sopenharmony_ci| media.AudioRecorder        | start(): void                                                |
229e41f4b71Sopenharmony_ci| media.AudioRecorder        | pause(): void                                                |
230e41f4b71Sopenharmony_ci| media.AudioRecorder        | stop(): void                                                 |
231e41f4b71Sopenharmony_ci| media.AudioRecorder        | reset(): void                                                |
232e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | audioSampleRate?: number                                     |
233e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | location?: Location                                          |
234e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | fileFormat?: ContainerFormatType                             |
235e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | interface AudioRecorderConfig                                |
236e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | audioEncoder?: AudioEncoder                                  |
237e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | audioEncodeBitRate?: number                                  |
238e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | numberOfChannels?: number                                    |
239e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | format?: AudioOutputFormat                                   |
240e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | uri: string                                                  |
241e41f4b71Sopenharmony_ci| media.AudioRecorderConfig  | audioEncoderMime?: CodecMimeType                             |
242e41f4b71Sopenharmony_ci| media.VideoRecorder        | interface VideoRecorder                                      |
243e41f4b71Sopenharmony_ci| media.VideoRecorder        | prepare(config: VideoRecorderConfig, callback: AsyncCallback\<void>): void |
244e41f4b71Sopenharmony_ci| media.VideoRecorder        | prepare(config: VideoRecorderConfig): Promise\<void>         |
245e41f4b71Sopenharmony_ci| media.VideoRecorder        | release(callback: AsyncCallback\<void>): void                |
246e41f4b71Sopenharmony_ci| media.VideoRecorder        | release(): Promise\<void>                                    |
247e41f4b71Sopenharmony_ci| media.VideoRecorder        | readonly state: VideoRecordState                             |
248e41f4b71Sopenharmony_ci| media.VideoRecorder        | on(type: 'error', callback: ErrorCallback): void             |
249e41f4b71Sopenharmony_ci| media.VideoRecorder        | resume(callback: AsyncCallback\<void>): void                 |
250e41f4b71Sopenharmony_ci| media.VideoRecorder        | resume(): Promise\<void>                                     |
251e41f4b71Sopenharmony_ci| media.VideoRecorder        | start(callback: AsyncCallback\<void>): void                  |
252e41f4b71Sopenharmony_ci| media.VideoRecorder        | start(): Promise\<void>                                      |
253e41f4b71Sopenharmony_ci| media.VideoRecorder        | pause(callback: AsyncCallback\<void>): void                  |
254e41f4b71Sopenharmony_ci| media.VideoRecorder        | pause(): Promise\<void>                                      |
255e41f4b71Sopenharmony_ci| media.VideoRecorder        | stop(callback: AsyncCallback\<void>): void                   |
256e41f4b71Sopenharmony_ci| media.VideoRecorder        | stop(): Promise\<void>                                       |
257e41f4b71Sopenharmony_ci| media.VideoRecorder        | reset(callback: AsyncCallback\<void>): void                  |
258e41f4b71Sopenharmony_ci| media.VideoRecorder        | reset(): Promise\<void>                                      |
259e41f4b71Sopenharmony_ci| media.VideoRecorder        | getInputSurface(callback: AsyncCallback\<string>): void      |
260e41f4b71Sopenharmony_ci| media.VideoRecorder        | getInputSurface(): Promise\<string>                          |
261e41f4b71Sopenharmony_ci| media.VideoRecorderConfig  | videoSourceType: VideoSourceType                             |
262e41f4b71Sopenharmony_ci| media.VideoRecorderConfig  | audioSourceType?: AudioSourceType                            |
263e41f4b71Sopenharmony_ci| media.VideoRecorderConfig  | profile: VideoRecorderProfile                                |
264e41f4b71Sopenharmony_ci| media.VideoRecorderConfig  | rotation?: number                                            |
265e41f4b71Sopenharmony_ci| media.VideoRecorderConfig  | url: string                                                  |
266e41f4b71Sopenharmony_ci| media.VideoRecorderConfig  | location?: Location                                          |
267e41f4b71Sopenharmony_ci| media.VideoRecorderConfig  | interface VideoRecorderConfig                                |
268e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly videoBitrate: number                                |
269e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly videoCodec: CodecMimeType                           |
270e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly audioCodec: CodecMimeType                           |
271e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly videoFrameRate: number                              |
272e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly videoFrameHeight: number                            |
273e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly audioSampleRate: number                             |
274e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly audioBitrate: number                                |
275e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly videoFrameWidth: number                             |
276e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly audioChannels: number                               |
277e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | readonly fileFormat: ContainerFormatType                     |
278e41f4b71Sopenharmony_ci| media.VideoRecorderProfile | interface VideoRecorderProfile                               |
279e41f4b71Sopenharmony_ci| unnamed                    | type VideoRecordState = 'idle' \| 'prepared' \| 'playing' \| 'paused' \| 'stopped' \| 'error' |
280e41f4b71Sopenharmony_ci
281e41f4b71Sopenharmony_ciChanged APIs
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_ci| Class                 | Declaration                                                    | Capability Before Change                                     | Capability After Change                                  | Whether a System API Before Change| Whether a System API After Change|
284e41f4b71Sopenharmony_ci| --------------------- | ------------------------------------------------------------ | ----------------------------------------------- | -------------------------------------------- | -------------------- | -------------------- |
285e41f4b71Sopenharmony_ci| 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 | Yes                  | No                  |
286e41f4b71Sopenharmony_ci| 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 | Yes                  | No                  |
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_ci**Adaptation Guide**
289e41f4b71Sopenharmony_ci
290e41f4b71Sopenharmony_ciFor details, see the [reference](../../../application-dev/reference/apis/js-apis-media.md) for each API.
291e41f4b71Sopenharmony_ci
292e41f4b71Sopenharmony_ci## cl.media.3 Error Code Change
293e41f4b71Sopenharmony_ci
294e41f4b71Sopenharmony_ciAdded the standard error code enumeration type [AVErrorCode9](../../../application-dev/reference/apis/js-apis-media.md#averrorcode)<sup>9+</sup> that replaces the original error code enumeration type [MediaErrorCode](../../../application-dev/reference/apis/js-apis-media.md#mediaerrorcode)<sup>8+</sup>.
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci**Change Impacts**
297e41f4b71Sopenharmony_ci
298e41f4b71Sopenharmony_ciThe error code enumeration type [MediaErrorCode](../../../application-dev/reference/apis/js-apis-media.md#mediaerrorcode)<sup>8+</sup> is still used for original APIs. [AVErrorCode9](../../../application-dev/reference/apis/js-apis-media.md#averrorcode)<sup>9+</sup> is used for newly added APIs.
299e41f4b71Sopenharmony_ci
300e41f4b71Sopenharmony_ci**Key API/Component Changes**
301e41f4b71Sopenharmony_ci
302e41f4b71Sopenharmony_ciAdded API
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_ci| Class             | Declaration                                              |
305e41f4b71Sopenharmony_ci| ----------------- | ------------------------------------------------------------ |
306e41f4b71Sopenharmony_ci| 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, } |
307e41f4b71Sopenharmony_ci
308e41f4b71Sopenharmony_ciAPI no longer maintained
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ci| Class                | Declaration                                          |
311e41f4b71Sopenharmony_ci| -------------------- | ------------------------------------------------------------ |
312e41f4b71Sopenharmony_ci| 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, } |
313e41f4b71Sopenharmony_ci
314e41f4b71Sopenharmony_ci <!--no_check-->