1# 媒体子系统Changelog
2
3## cl.multimedia.1 OH_AVPlayerOnError 废弃AVPlayer NDK错误回调接口
4
5**访问级别**
6
7公开接口。
8
9**变更原因**
10
11优化ndk接口,回调增加userData参数。
12
13**变更影响**
14
15该变更为不兼容变更。
16
17变更前:应用使用OH_AVPlayerOnError接收错误信息回调。
18
19变更后:应用使用OH_AVPlayerOnErrorCallback接收错误信息回调。
20
21**起始 API Level**
22
2311
24
25**变更发生的版本**
26
27从OpenHarmony SDK 5.0.0.38开始。
28
29**适配指导**
30
31可参考以下OH_AVPlayerOnErrorCallback的示例进行适配。
32```
33struct MyPlayer
34{
35    const char* url;
36    int32_t errorCode;
37}
38
39void PlayerErrorCallback(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg, void *userData)
40{
41    MyPlayer* myPlayer = (MyPlayer*)userData;
42    myPlayer->errorCode = errorCode;
43}
44
45void PlayerInfoCallback(OH_AVPlayer *player, AVPlayerOnInfoType type, OH_AVFormat* infoBody, void *userData)
46{
47    if (type == AV_INFO_TYPE_STATE_CHANGE) {
48        int32_t state, reason;
49        OH_AVFormat_GetIntValue(infoBody, OH_PLAYER_STATE, &state);
50        OH_AVFormat_GetIntValue(infoBody, OH_PLAYER_STATE_CHANGED_REASON, &reason);
51        // use state reason
52    }
53}
54
55int main()
56{
57    MyPlayer myPlayer;
58    myPlayer.url = "http://localhost/test.mp4";
59    OH_AVPlayer* player = OH_AVPlayer_Create();
60    OH_AVPlayer_SetOnErrorCallback(player, PlayerErrorCallback, &myPlayer);
61    OH_AVPlayer_SetOnInfoCallback(player, PlayerInfoCallback, &myPlayer);
62    OH_AVPlayer_SetURLSource(player, myPlayer.url);
63    OH_AVPlayer_Prepare(player);
64    OH_AVPlayer_Play(player);
65    Sleep(10000);
66    OH_AVPlayer_Stop(player);
67    OH_AVPlayer_Release(player);
68}
69
70```
71## cl.multimedia.2 OH_AVPlayerOnInfo 废弃AVPlayer NDK信息回调接口
72
73**访问级别**
74
75公开接口。
76
77**变更原因**
78
79原来的回调接口,只能传递int32_t类型的extra额外信息,有些信息无法上报,比如宽高,可用的bitrate数组等。因此增加新的回调接口,上报OH_AVFormat类型的infoBody,可传递更多信息。
80
81**变更影响**
82
83该变更为不兼容变更。
84
85变更前:应用使用OH_AVPlayerOnInfo接收信息回调。
86
87变更后:应用使用OH_AVPlayerOnInfoCallback接收信息回调。
88
89**起始 API Level**
90
9111
92
93**变更发生的版本**
94
95从OpenHarmony SDK 5.0.0.38开始。
96
97**适配指导**
98
99使用新的 OH_AVPlayerOnInfoCallback和OH_AVPlayer_SetOnInfoCallback代替原来的信息回调。
100示例可参考参见上述[OH_AVPlayerOnError 废弃AVPlayer NDK错误回调接口](#clmultimedia1-oh_avplayeronerror-废弃avplayer-ndk错误回调接口)的适配指导。
101
102## cl.multimedia.3 AVPlayerCallback 废弃AVPlayer NDK AVPlayerCallback回调接口
103
104**访问级别**
105
106公开接口。
107
108**变更原因**
109
110AVPlayerCallback 结果的两个成员OH_AVPlayerOnInfo、OH_AVPlayerOnError废弃,它也不需要了。
111
112**变更影响**
113
114该变更为不兼容变更。
115
116变更前:应用使用OH_AVPlayerOnInfo、OH_AVPlayerOnError、AVPlayerCallback、OH_AVPlayer_SetPlayerCallback接收信息和错误回调。
117
118变更后:应用使用OH_AVPlayerOnInfoCallback、OH_AVPlayerOnErrorCallback,OH_AVPlayer_SetOnInfoCallback,OH_AVPlayer_SetOnErrorCallback接收信息和错误回调。
119
120**起始 API Level**
121
12211
123
124**变更发生的版本**
125
126从OpenHarmony SDK 5.0.0.38开始。
127
128**适配指导**
129
130使用新的 OH_AVPlayerOnInfoCallback和OH_AVPlayer_SetOnInfoCallback代替原来的信息回调。
131示例可参考参见上述[OH_AVPlayerOnError 废弃AVPlayer NDK错误回调接口](#clmultimedia1-oh_avplayeronerror-废弃avplayer-ndk错误回调接口)的适配指导。
132
133## cl.multimedia.4 OH_AVPlayer_SetPlayerCallback 废弃AVPlayer NDK OH_AVPlayer_SetPlayerCallback接口
134
135**访问级别**
136
137公开接口。
138
139**变更原因**
140
141原来的回调接口,只能传递int32_t类型的extra额外信息,有些信息无法上报,比如宽高,可用的bitrate数组等。因此增加新的回调接口,上报OH_AVFormat类型的infoBody,可传递更多信息。
142老的接口 OH_AVPlayerOnInfo、OH_AVPlayerOnError、AVPlayerCallback已废弃,OH_AVPlayer_SetPlayerCallback也不再需要了。
143
144**变更影响**
145
146该变更为不兼容变更。
147
148变更前:应用使用OH_AVPlayerOnInfo、OH_AVPlayerOnError、AVPlayerCallback、OH_AVPlayer_SetPlayerCallback接收信息和错误回调。
149
150变更后:应用使用OH_AVPlayerOnInfoCallback、OH_AVPlayerOnErrorCallback,OH_AVPlayer_SetOnInfoCallback,OH_AVPlayer_SetOnErrorCallback接收信息和错误回调。
151
152**起始 API Level**
153
15411
155
156**变更发生的版本**
157
158从OpenHarmony SDK 5.0.0.38开始。
159
160**适配指导**
161
162使用新的 OH_AVPlayerOnInfoCallback和OH_AVPlayer_SetOnInfoCallback代替原来的信息回调。
163示例可参考参见上述[OH_AVPlayerOnError 废弃AVPlayer NDK错误回调接口](#clmultimedia1-oh_avplayeronerror-废弃avplayer-ndk错误回调接口)的适配指导。
164
165## cl.multimedia.5 ProfessionalPhotoSession.on/off 函数事件名称变更
166
167**访问级别**
168
169系统接口。
170
171**变更原因**
172
173变更事件名称,对齐HAMS规范要求。
174
175**变更影响**
176
177该变更为不兼容变更。
178若使用了
179on(type: 'isoInfo', callback: AsyncCallback\<IsoInfo>): void
180off(type: 'isoInfo', callback?: AsyncCallback\<IsoInfo>): void
181on(type: 'exposureInfo', callback: AsyncCallback\<ExposureInfo>): void
182off(type: 'exposureInfo', callback?: AsyncCallback\<ExposureInfo>): void
183on(type: 'apertureInfo', callback: AsyncCallback\<ApertureInfo>): void
184off(type: 'apertureInfo', callback?: AsyncCallback\<ApertureInfo>): void
185on(type: 'luminationInfo', callback: AsyncCallback\<LuminationInfo>): void
186off(type: 'luminationInfo', callback?: AsyncCallback\<LuminationInfo>): void
187事件监听,会在编译时报错。
188
189**起始 API Level**
190
19112
192
193**变更发生的版本**
194
195从OpenHarmony SDK 5.0.0.38开始。
196
197**变更的接口/组件**
198
199|            接口声明            |               变更前                 |            变更后             |
200| :----------------------------: | :----------------------------------: | :---------------------------: |
201| on(type: 'isoInfo', callback: AsyncCallback\<IsoInfo>): void | type: 'isoInfo' | type: 'isoInfoChange' |
202| off(type: 'isoInfo', callback?: AsyncCallback\<IsoInfo>): void | type: 'isoInfo' | type: 'isoInfoChange' |
203| on(type: 'exposureInfo', callback: AsyncCallback\<ExposureInfo>): void | type: 'exposureInfo' | type: 'exposureInfoChange' |
204| off(type: 'exposureInfo', callback?: AsyncCallback\<ExposureInfo>): void | type: 'exposureInfo' | type: 'exposureInfoChange' |
205| on(type: 'apertureInfo', callback: AsyncCallback\<ApertureInfo>): void | type: 'apertureInfo' | type: 'apertureInfoChange' |
206| off(type: 'apertureInfo', callback?: AsyncCallback\<ApertureInfo>): void | type: 'apertureInfo' | type: 'apertureInfoChange' |
207| on(type: 'luminationInfo', callback: AsyncCallback\<LuminationInfo>): void | type: 'luminationInfo' | type: 'luminationInfoChange' |
208| off(type: 'luminationInfo', callback?: AsyncCallback\<LuminationInfo>): void | type: 'luminationInfo' | type: 'luminationInfoChange' |
209
210**适配指导**
211
212开发者需要修改type参数的值,适配新的事件名称 。
213
214## cl.multimedia.6 ProfessionalVideoSession.on/off 函数事件名称变更
215
216**访问级别**
217
218系统接口。
219
220**变更原因**
221
222变更事件名称,对齐HAMS规范要求。
223
224**变更影响**
225
226该变更为不兼容变更。
227若使用了
228on(type: 'isoInfo', callback: AsyncCallback\<IsoInfo>): void
229off(type: 'isoInfo', callback?: AsyncCallback\<IsoInfo>): void
230on(type: 'exposureInfo', callback: AsyncCallback\<ExposureInfo>): void
231off(type: 'exposureInfo', callback?: AsyncCallback\<ExposureInfo>): void
232on(type: 'apertureInfo', callback: AsyncCallback\<ApertureInfo>): void
233off(type: 'apertureInfo', callback?: AsyncCallback\<ApertureInfo>): void
234on(type: 'luminationInfo', callback: AsyncCallback\<LuminationInfo>): void
235off(type: 'luminationInfo', callback?: AsyncCallback\<LuminationInfo>): void
236事件监听,会在编译时报错。
237
238**起始 API Level**
239
24012
241
242**变更发生的版本**
243
244从OpenHarmony SDK 5.0.0.38开始。
245
246**变更的接口/组件**
247
248|            接口声明            |               变更前                 |            变更后             |
249| :----------------------------: | :----------------------------------: | :---------------------------: |
250| on(type: 'isoInfo', callback: AsyncCallback\<IsoInfo>): void | type: 'isoInfo' | type: 'isoInfoChange' |
251| off(type: 'isoInfo', callback?: AsyncCallback\<IsoInfo>): void | type: 'isoInfo' | type: 'isoInfoChange' |
252| on(type: 'exposureInfo', callback: AsyncCallback\<ExposureInfo>): void | type: 'exposureInfo' | type: 'exposureInfoChange' |
253| off(type: 'exposureInfo', callback?: AsyncCallback\<ExposureInfo>): void | type: 'exposureInfo' | type: 'exposureInfoChange' |
254| on(type: 'apertureInfo', callback: AsyncCallback\<ApertureInfo>): void | type: 'apertureInfo' | type: 'apertureInfoChange' |
255| off(type: 'apertureInfo', callback?: AsyncCallback\<ApertureInfo>): void | type: 'apertureInfo' | type: 'apertureInfoChange' |
256| on(type: 'luminationInfo', callback: AsyncCallback\<LuminationInfo>): void | type: 'luminationInfo' | type: 'luminationInfoChange' |
257| off(type: 'luminationInfo', callback?: AsyncCallback\<LuminationInfo>): void | type: 'luminationInfo' | type: 'luminationInfoChange' |
258
259**适配指导**
260
261开发者需要修改type参数的值,适配新的事件名称 。