1# 多媒体子系统ChangeLog 2 3## cl.multimedia.audio.001 getRoutingManager()调用方式变更 4 5getRoutingManager()接口的调用方法由异步变为同步。 6 7**变更影响** 8 9如不符合上述调用规则,将会在编译执行时出错。 10 11**关键的接口/组件变更** 12 13变更前 14```js 15getRoutingManager(callback: AsyncCallback<AudioRoutingManager>): void; 16getRoutingManager(): Promise<AudioRoutingManager>; 17``` 18变更后 19```js 20getRoutingManager(): AudioRoutingManager; 21``` 22 23 24## cl.multimedia.audio.002 getStreamManager()调用方式变更 25 26getStreamManager()接口的调用方法由异步变为同步。 27 28**变更影响** 29 30如不符合上述调用规则,将会在编译执行时出错。 31 32**关键的接口/组件变更** 33 34变更前 35```js 36getStreamManager(callback: AsyncCallback<AudioStreamManager>): void; 37getStreamManager(): Promise<AudioStreamManager>; 38``` 39变更后 40```js 41getStreamManager(): AudioStreamManager; 42``` 43 44 45## cl.multimedia.audio.003 原AudioRoutingManager中micStateChange监听注册方式变更 46 47原AudioRoutingManager中,on()函数的micStateChange监听注册方式变更。 48 49**变更影响** 50 51如不符合上述调用规则,将会在编译执行时出错。 52 53**关键的接口/组件变更** 54 55变更前 56 57```js 58interface AudioRoutingManager { 59 on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void; 60} 61``` 62变更后 63```js 64interface AudioVolumeGroupManager { 65 on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void; 66} 67``` 68 69 70## cl.multimedia.audio.004 getVolumeGroups()调用方式变更 71 72getVolumeGroups()接口的调用方式变更。 73 74**变更影响** 75 76如不符合上述调用规则,将会在编译执行时出错。 77 78**关键的接口/组件变更** 79 80变更前 81```js 82getVolumeGroups(networkId: string, callback:AsyncCallback<VolumeGroupInfos>): void; 83getVolumeGroups(networkId: string): Promise<VolumeGroupInfos>; 84``` 85变更后 86```js 87getVolumeManager(): AudioVolumeManager; 88interface AudioVolumeManager{ 89 getVolumeGroupInfos(networkId: string, callback: AsyncCallback<VolumeGroupInfos>): void; 90 getVolumeGroupInfos(networkId: string): Promise<VolumeGroupInfos>; 91} 92``` 93 94 95## cl.multimedia.audio.005 getGroupManager()调用方式变更 96 97getGroupManager()接口的调用方式变更。 98 99**变更影响** 100 101如不符合上述调用规则,将会在编译执行时出错。 102 103**关键的接口/组件变更** 104 105变更前 106```js 107getGroupManager(groupId: number, callback: AsyncCallback<AudioGroupManager>): void; 108getGroupManager(groupId: number): Promise<AudioGroupManager>; 109``` 110变更后 111```js 112getVolumeManager(): AudioVolumeManager; 113interface AudioVolumeManager{ 114 getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager>): void; 115 getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>; 116} 117``` 118 119 120## cl.multimedia.audio.006 枚举FocusType成员名变更 121 122枚举FocusType中,成员FOCUS_TYPE_RECORDING重命名为FOCUS_TYPE_DEFAULT。 123 124**变更影响** 125 126如不符合上述调用规则,将会在编译执行时出错。 127 128**关键的接口/组件变更** 129 130变更前 131```js 132enum FocusType { 133 FOCUS_TYPE_RECORDING = 0, 134} 135``` 136变更后 137```js 138enum InterruptRequestType { 139 INTERRUPT_REQUEST_TYPE_DEFAULT = 0, 140} 141``` 142 143 144## cl.multimedia.audio.007 AudioRenderer中interrupt监听注册名称变更 145 146AudioRenderer中on()函数的interrupt监听注册名称变更。 147 148**变更影响** 149 150如不符合上述调用规则,将会在编译执行时出错。 151 152**关键的接口/组件变更** 153 154变更前 155```js 156interface AudioRenderer { 157 on(type: 'interrupt', callback: Callback<InterruptEvent>): void; 158} 159``` 160变更后 161```js 162interface AudioRenderer { 163 on(type: 'audioInterrupt', callback: Callback<InterruptEvent>): void; 164} 165``` 166 167 168## cl.multimedia.media.001 VideoRecorder相关接口变更为systemapi 169 170录制在MR版本会提供正式的AVRecorder(音视频合一)的接口给外部用户使用。 171VideoRecorder相关的api9接口变更为systemapi,当前只提供给系统用户使用,未来等内部用户都切换为AVRecorder之后,废弃VideoRecorder相关接口。 172 173**变更影响** 174 175如果VideoRecorder的调用者非系统用户,会调用失败。 176涉及接口以及枚举如下: 177function createVideoRecorder(callback: AsyncCallback<VideoRecorder>): void; 178function createVideoRecorder(): Promise<VideoRecorder>; 179type VideoRecordState = 'idle' | 'prepared' | 'playing' | 'paused' | 'stopped' | 'error'; 180interface VideoRecorder{ 181 prepare(config: VideoRecorderConfig, callback: AsyncCallback<void>): void; 182 prepare(config: VideoRecorderConfig): Promise<void>; 183 getInputSurface(callback: AsyncCallback<string>): void; 184 getInputSurface(): Promise<string>; 185 start(callback: AsyncCallback<void>): void; 186 start(): Promise<void>; 187 pause(callback: AsyncCallback<void>): void; 188 pause(): Promise<void>; 189 resume(callback: AsyncCallback<void>): void; 190 resume(): Promise<void>; 191 stop(callback: AsyncCallback<void>): void; 192 stop(): Promise<void>; 193 release(callback: AsyncCallback<void>): void; 194 release(): Promise<void>; 195 reset(callback: AsyncCallback<void>): void; 196 reset(): Promise<void>; 197 on(type: 'error', callback: ErrorCallback): void; 198 readonly state: VideoRecordState; 199} 200interface VideoRecorderProfile { 201 readonly audioBitrate: number; 202 readonly audioChannels: number; 203 readonly audioCodec: CodecMimeType; 204 readonly audioSampleRate: number; 205 readonly fileFormat: ContainerFormatType; 206 readonly videoBitrate: number; 207 readonly videoCodec: CodecMimeType; 208 readonly videoFrameWidth: number; 209 readonly videoFrameHeight: number; 210 readonly videoFrameRate: number; 211} 212enum AudioSourceType { 213 AUDIO_SOURCE_TYPE_DEFAULT = 0, 214 AUDIO_SOURCE_TYPE_MIC = 1, 215} 216enum VideoSourceType { 217 VIDEO_SOURCE_TYPE_SURFACE_YUV = 0, 218 VIDEO_SOURCE_TYPE_SURFACE_ES = 1, 219} 220enum VideoRecorderConfig { 221 audioSourceType?: AudioSourceType; 222 videoSourceType: VideoSourceType; 223 profile: VideoRecorderProfile; 224 url: string; 225 rotation?: number; 226 location?: Location; 227} 228 229## cl.multimedia.media.002 VideoPlayer中不对外提供多码率选择接口 230 231VideoPlayer在API9中不对外提供多码率选择相关接口,相关接口会在MR版本中由AvPlayer提供。 232 233**变更影响** 234 235VideoPlayer多码率场景无法进行码率选择,相关功能由AVPlayer提供 236 237**关键的接口/组件变更** 238 239删除如下接口 240interface VideoPlayer { 241 selectBitrate(bitrate: number): Promise<number>; 242 selectBitrate(bitrate: number, callback: AsyncCallback<number>): void; 243 on(type: 'availableBitratesCollect', callback: (bitrates: Array<number>) => void): void; 244} 245 246## cl.multimedia.media.003 VideoRecorder错误信息变更 247 248VideoRecorder原有错误码与整体错误码规则不一致,变更错误码适配规则。 249 250**变更影响** 251 252VideoRecorder返回的错误码发生变更。 253 254**关键的接口/组件变更** 255 256VideoRecorder接口未发生变更,返回的错误码发生变更。 257 258**适配指导** 259 260异常处理具体参考接口文档。 261https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-media.md 262https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-media.md 263