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定义调用接口。