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参数的值,适配新的事件名称 。