1# multimedia子系统ChangeLog 2 3## cl.multimedia.1 5400102错误码实现修正 4 5部分含入参的API10接口,当开发者传递的参数错误,或状态机异常(如load未完成就直接play),接口应当按照API声明抛出操作异常,提醒开发者在应用调试过程中出现此类接口使用问题。 6当前版本修正了部分接口没有按此预期抛出错误的问题 7 8**变更影响** 9 10仅影响错误使用接口的场景 11 12当前变更涉及的接口原型: 13 14```ts 15load(uri: string): Promise<number> 16load(fd: number, offset: number, length: number): Promise<number> 17play(soundID: number, params: PlayParameters, callback: AsyncCallback<number>): void 18play(soundID: number, callback: AsyncCallback<number>): void 19play(soundID: number, params?: PlayParameters): Promise<number> 20stop(streamID: number, callback: AsyncCallback<void>): void 21stop(streamID: number): Promise<void> 22setLoop(streamID: number, loop: number): Promise<void> 23setPriority(streamID: number, priority: number): Promise<void> 24setRate(streamID: number, rate: audio.AudioRendererRate): Promise<void> 25setVolume(streamID: number, leftVolume: number, rightVolume: number): Promise<void> 26unload(soundID: number): Promise<void> 27``` 28 29修改后,上述接口新增5400102错误码声明: 30 31```ts 32@throws { BusinessError } 5400102 - Operation not allowed. 33``` 34 35**适配指导** 36 37正确使用API,无需适配。如发现抛出异常,则说明传入参数有误,或状态机异常,需要按照API定义调用接口。 38 39## cl.multimedia.2 5400103错误码实现修正 40 41部分含入参的API10接口,当开发者调用接口发生媒体与其他模块的数据交互问题(I/O ERROR)的时候,接口应当按照接口声明抛出异常,提醒开发者在应用调试过程中出现此类接口使用问题。 42当前版本修正了部分接口没有按此预期抛出错误的问题 43 44**变更影响** 45 46仅影响错误使用接口的场景 47 48当前变更涉及的接口原型: 49 50```ts 51load(uri: string): Promise<number> 52load(fd: number, offset: number, length: number, callback: AsyncCallback<number>): void 53load(fd: number, offset: number, length: number): Promise<number> 54unload(soundID: number): Promise<void> 55``` 56 57修改后,上述接口新增5400103错误码声明: 58 59```ts 60@throws { BusinessError } 5400103 - I/O error. 61``` 62 63**适配指导** 64 65正确使用API,无需适配。如发现抛出异常,则说明发生媒体与其他模块的数据交互问题,需要按照API定义调用接口。 66 67## cl.multimedia.3 5400105错误码实现修正 68 69部分含入参的API10接口,当调用接口发生播放服务死亡时,接口应当按照接口声明抛出异常,提醒开发者在应用调试过程中出现此类接口使用问题。 70当前版本修正了部分接口没有按此预期抛出错误的问题 71 72**变更影响** 73 74仅影响错误使用接口的场景 75 76当前变更涉及的接口原型: 77 78```ts 79load(uri: string): Promise<number> 80load(fd: number, offset: number, length: number): Promise<number> 81play(soundID: number, params?: PlayParameters): Promise<number> 82stop(streamID: number): Promise<void> 83setLoop(streamID: number, loop: number): Promise<void> 84setPriority(streamID: number, priority: number): Promise<void> 85setRate(streamID: number, rate: audio.AudioRendererRate): Promise<void> 86setVolume(streamID: number, leftVolume: number, rightVolume: number): Promise<void> 87unload(soundID: number): Promise<void> 88release(): Promise<void> 89``` 90 91修改后,上述接口新增5400105错误码声明: 92 93```ts 94@throws { BusinessError } 5400105 - Service died. 95``` 96 97**适配指导** 98 99正确使用API,无需适配。如发现抛出异常,则说明当前播放服务死亡,需要按照API定义调用接口。 100 101## cl.multimedia.4 SoundPool.on('loadComplete')接口实现错误修正 102 103SoundPool的on('loadComplete')接口,按照API定义,开发者调用接口进行加载完成监听,发生错误时通过on('error')回调接口抛出。历史版本中接口抛出错误码的设计多余,在新版本中修复此问题。 104 105**变更影响** 106 107仅影响错误使用接口的场景 108 109当前变更涉及的接口原型: 110 111```ts 112on(type: 'loadComplete', callback: Callback<number>): void 113``` 114 115修改后,上述接口不进行错误码声明: 116 117```ts 118@param {'loadComplete'} type Type of the play finish event to listen for. 119@param {Callback<number>} callback Callback used to listen for load result event 120@syscap SystemCapability.Multimedia.Media.SoundPool 121@since 10 122``` 123 124**适配指导** 125 126正确使用API,无需适配。按照API定义调用接口,发生错误时通过on('error')回调接口抛出,不需要针对接口进行抛出错误码的设计。 127 128## cl.multimedia.5 SoundPool.on('playFinished')接口实现错误修正 129 130SoundPool的on('playFinished')接口,按照API定义,开发者调用接口进行播放完成监听,发生错误时通过on('error')回调接口抛出。历史版本中接口抛出错误码的设计多余,在新版本中修复此问题。 131 132**变更影响** 133 134仅影响错误使用接口的场景 135 136当前变更涉及的接口原型: 137 138```ts 139on(type: 'playFinished', callback: Callback<void>): void 140``` 141 142修改后,上述接口不进行错误码声明: 143 144```ts 145@param {'loadComplete'} type Type of the play finish event to listen for. 146@param {Callback<number>} callback Callback used to listen for load result event 147@syscap SystemCapability.Multimedia.Media.SoundPool 148@since 10 149``` 150 151**适配指导** 152 153正确使用API,无需适配。按照API定义调用接口,发生错误时通过on('error')回调接口抛出,不需要针对接口进行抛出错误码的设计。 154 155## cl.multimedia.6 401错误码实现修正 156 157部分含入参的API10接口,当开发者调用接口时缺少入参,接口应当按照API声明抛出401操作异常,提醒开发者在应用调试过程中出现了此类接口使用问题。 158当前版本修正了部分接口没有按此预期抛出错误的问题 159 160**变更影响** 161 162仅影响错误使用接口的场景 163 164当前变更涉及的接口原型: 165 166```ts 167play(soundID: number, params: PlayParameters, callback: AsyncCallback<number>): void; 168play(soundID: number, callback: AsyncCallback<number>): void; 169play(soundID: number, params?: PlayParameters): Promise<number>; 170stop(streamID: number, callback: AsyncCallback<void>): void; 171stop(streamID: number): Promise<void>; 172setLoop(streamID: number, loop: number, callback: AsyncCallback<void>): void; 173setLoop(streamID: number, loop: number): Promise<void>; 174setPriority(streamID: number, priority: number, callback: AsyncCallback<void>): void; 175setPriority(streamID: number, priority: number): Promise<void>; 176setRate(streamID: number, rate: audio.AudioRendererRate, callback: AsyncCallback<void>): void; 177setRate(streamID: number, rate: audio.AudioRendererRate): Promise<void>; 178setVolume(streamID: number, leftVolume: number, rightVolume: number, callback: AsyncCallback<void>): void; 179setVolume(streamID: number, leftVolume: number, rightVolume: number): Promise<void>; 180``` 181 182修改后,上述接口新增401错误码声明: 183 184```ts 185@throws { BusinessError } 401 - The parameter check failed. Return by callback. 186``` 187 188**适配指导** 189 190正确使用API,无需适配。如发现抛出异常,则说明当前接口调用缺少必要参数,需要按照API定义调用接口。