1# native_avsession.h 2<!--Kit: AVSession Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @ccfriend; @liao_qian--> 5<!--SE: @ccfriend--> 6<!--TSE: @chenmingxi1_huawei--> 7 8## Overview 9 10The file declares the AVSession definition, which can be used to set metadata, playback state, and other information. 11 12**File to include**: <multimedia/av_session/native_avsession.h> 13 14**Library**: libohavsession.so 15 16**System capability**: SystemCapability.Multimedia.AVSession.Core 17 18**Since**: 13 19 20**Related module**: [OHAVSession](capi-ohavsession.md) 21 22## Summary 23 24### Structs 25 26| Name| typedef Keyword| Description| 27| -- | -- | -- | 28| [AVSession_PlaybackPosition](capi-ohavsession-avsession-playbackposition.md) | AVSession_PlaybackPosition | Describes the information related to the playback position.| 29| [OH_AVSession](capi-ohavsession-oh-avsession.md) | OH_AVSession | Defines a struct for the playback control session object. You can use **OH_AVSession_Create** to create such an object.| 30 31### Enums 32 33| Name| typedef Keyword| Description| 34| -- | -- | -- | 35| [AVSession_Type](#avsession_type) | AVSession_Type | Enumerates the session types.| 36| [AVSession_PlaybackState](#avsession_playbackstate) | AVSession_PlaybackState | Enumerates the media playback states.| 37| [AVSession_LoopMode](#avsession_loopmode) | AVSession_LoopMode | Enumerates the loop modes of media playback.| 38| [AVSession_ControlCommand](#avsession_controlcommand) | AVSession_ControlCommand | Enumerates the playback control commands.| 39| [AVSessionCallback_Result](#avsessioncallback_result) | AVSessionCallback_Result | Enumerates the callback execution results.| 40 41### Functions 42 43| Name| typedef Keyword| Description| 44| -- | -- | -- | 45| [typedef AVSessionCallback_Result (\*OH_AVSessionCallback_OnCommand)(OH_AVSession* session,AVSession_ControlCommand command, void* userData)](#oh_avsessioncallback_oncommand) | OH_AVSessionCallback_OnCommand | Defines a callback for a common playback control command.| 46| [typedef AVSessionCallback_Result (\*OH_AVSessionCallback_OnFastForward)(OH_AVSession* session,uint32_t seekTime, void* userData)](#oh_avsessioncallback_onfastforward) | OH_AVSessionCallback_OnFastForward | Defines a callback for the fast-forward operation.| 47| [typedef AVSessionCallback_Result (\*OH_AVSessionCallback_OnRewind)(OH_AVSession* session,uint32_t seekTime, void* userData)](#oh_avsessioncallback_onrewind) | OH_AVSessionCallback_OnRewind | Defines a callback for the rewind operation.| 48| [typedef AVSessionCallback_Result (\*OH_AVSessionCallback_OnSeek)(OH_AVSession* session,uint64_t seekTime, void* userData)](#oh_avsessioncallback_onseek) | OH_AVSessionCallback_OnSeek | Defines a callback for the seek operation.| 49| [typedef AVSessionCallback_Result (\*OH_AVSessionCallback_OnSetLoopMode)(OH_AVSession* session,AVSession_LoopMode curLoopMode, void* userData)](#oh_avsessioncallback_onsetloopmode) | OH_AVSessionCallback_OnSetLoopMode | Defines a callback for the operation of setting the loop mode.| 50| [typedef AVSessionCallback_Result (\*OH_AVSessionCallback_OnToggleFavorite)(OH_AVSession* session,const char* assetId, void* userData)](#oh_avsessioncallback_ontogglefavorite) | OH_AVSessionCallback_OnToggleFavorite | Defines a callback for the operation of favoriting a media asset.| 51| [AVSession_ErrCode OH_AVSession_Create(AVSession_Type sessionType, const char* sessionTag,const char* bundleName, const char* abilityName, OH_AVSession** avsession)](#oh_avsession_create) | - | Creates a session object.| 52| [AVSession_ErrCode OH_AVSession_Destroy(OH_AVSession* avsession)](#oh_avsession_destroy) | - | Destroys a session object.| 53| [AVSession_ErrCode OH_AVSession_Activate(OH_AVSession* avsession)](#oh_avsession_activate) | - | Activates a session.| 54| [AVSession_ErrCode OH_AVSession_Deactivate(OH_AVSession* avsession)](#oh_avsession_deactivate) | - | Deactivates a session.| 55| [AVSession_ErrCode OH_AVSession_GetSessionType(OH_AVSession* avsession, AVSession_Type* sessionType)](#oh_avsession_getsessiontype) | - | Obtains the session type.| 56| [AVSession_ErrCode OH_AVSession_GetSessionId(OH_AVSession* avsession, const char** sessionId)](#oh_avsession_getsessionid) | - | Obtains the session ID.| 57| [AVSession_ErrCode OH_AVSession_SetAVMetadata(OH_AVSession* avsession, OH_AVMetadata* avmetadata)](#oh_avsession_setavmetadata) | - | Sets media metadata.| 58| [AVSession_ErrCode OH_AVSession_SetPlaybackState(OH_AVSession* avsession,AVSession_PlaybackState playbackState)](#oh_avsession_setplaybackstate) | - | Sets the playback state.| 59| [AVSession_ErrCode OH_AVSession_SetPlaybackPosition(OH_AVSession* avsession,AVSession_PlaybackPosition* playbackPosition)](#oh_avsession_setplaybackposition) | - | Sets the playback position.| 60| [AVSession_ErrCode OH_AVSession_SetFavorite(OH_AVSession* avsession, bool favorite)](#oh_avsession_setfavorite) | - | Favorites or unfavorites the media asset.| 61| [AVSession_ErrCode OH_AVSession_SetLoopMode(OH_AVSession* avsession, AVSession_LoopMode loopMode)](#oh_avsession_setloopmode) | - | Sets a loop mode.| 62| [AVSession_ErrCode OH_AVSession_RegisterCommandCallback(OH_AVSession* avsession,AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback, void* userData)](#oh_avsession_registercommandcallback) | - | Registers a callback for a common playback control command.| 63| [AVSession_ErrCode OH_AVSession_UnregisterCommandCallback(OH_AVSession* avsession,AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback)](#oh_avsession_unregistercommandcallback) | - | Unregisters the callback for a common playback control command.| 64| [AVSession_ErrCode OH_AVSession_RegisterForwardCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnFastForward callback, void* userData)](#oh_avsession_registerforwardcallback) | - | Registers a callback for the fast-forward operation.| 65| [AVSession_ErrCode OH_AVSession_UnregisterForwardCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnFastForward callback)](#oh_avsession_unregisterforwardcallback) | - | Unregisters the callback for the fast-forward operation.| 66| [AVSession_ErrCode OH_AVSession_RegisterRewindCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnRewind callback, void* userData)](#oh_avsession_registerrewindcallback) | - | Registers a callback for the rewind operation.| 67| [AVSession_ErrCode OH_AVSession_UnregisterRewindCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnRewind callback)](#oh_avsession_unregisterrewindcallback) | - | Unregisters the callback for the rewind operation.| 68| [AVSession_ErrCode OH_AVSession_RegisterSeekCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnSeek callback, void* userData)](#oh_avsession_registerseekcallback) | - | Registers a callback for the seek operation.| 69| [AVSession_ErrCode OH_AVSession_UnregisterSeekCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnSeek callback)](#oh_avsession_unregisterseekcallback) | - | Unregisters the callback for the seek operation.| 70| [AVSession_ErrCode OH_AVSession_RegisterSetLoopModeCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnSetLoopMode callback, void* userData)](#oh_avsession_registersetloopmodecallback) | - | Registers a callback for the operation of setting the loop mode.| 71| [AVSession_ErrCode OH_AVSession_UnregisterSetLoopModeCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnSetLoopMode callback)](#oh_avsession_unregistersetloopmodecallback) | - | Unregisters the callback for the operation of setting the loop mode.| 72| [AVSession_ErrCode OH_AVSession_RegisterToggleFavoriteCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnToggleFavorite callback, void* userData)](#oh_avsession_registertogglefavoritecallback) | - | Registers a callback for the operation of favoriting a media asset.| 73| [AVSession_ErrCode OH_AVSession_UnregisterToggleFavoriteCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnToggleFavorite callback)](#oh_avsession_unregistertogglefavoritecallback) | - | Unregisters the callback for the operation of favoriting a media asset.| 74 75## Enums 76 77### AVSession_Type 78 79``` 80enum AVSession_Type 81``` 82 83**Description** 84 85Enumerates the session types. 86 87**Since**: 13 88 89| Enum Item| Description| 90| -- | -- | 91| SESSION_TYPE_AUDIO = 0 | Audio.| 92| SESSION_TYPE_VIDEO = 1 | Video.| 93| SESSION_TYPE_VOICE_CALL = 2 | Audio call.| 94| SESSION_TYPE_VIDEO_CALL = 3 | Video call.| 95 96### AVSession_PlaybackState 97 98``` 99enum AVSession_PlaybackState 100``` 101 102**Description** 103 104Enumerates the media playback states. 105 106**Since**: 13 107 108| Enum Item| Description| 109| -- | -- | 110| PLAYBACK_STATE_INITIAL = 0 | Initial state.| 111| PLAYBACK_STATE_PREPARING = 1 | Ready.| 112| PLAYBACK_STATE_PLAYING = 2 | Playing.| 113| PLAYBACK_STATE_PAUSED = 3 | Paused.| 114| PLAYBACK_STATE_FAST_FORWARDING = 4 | Fast-forwarding.| 115| PLAYBACK_STATE_REWINDED = 5 | Rewinded.| 116| PLAYBACK_STATE_STOPPED = 6 | Stopped.| 117| PLAYBACK_STATE_COMPLETED = 7 | Playback complete.| 118| PLAYBACK_STATE_RELEASED = 8 | Released.| 119| PLAYBACK_STATE_ERROR = 9 | Error.| 120| PLAYBACK_STATE_IDLE = 10 | Idle.| 121| PLAYBACK_STATE_BUFFERING = 11 | Buffering.| 122| PLAYBACK_STATE_MAX = 12 | Maximum value. (Error code 401 is returned in this case.)| 123 124### AVSession_LoopMode 125 126``` 127enum AVSession_LoopMode 128``` 129 130**Description** 131 132Enumerates the loop modes of media playback. 133 134**Since**: 13 135 136| Enum Item| Description| 137| -- | -- | 138| LOOP_MODE_SEQUENCE = 0 | Sequential playback.| 139| LOOP_MODE_SINGLE = 1 | Single loop.| 140| LOOP_MODE_LIST = 2 | Playlist loop.| 141| LOOP_MODE_SHUFFLE = 3 | Shuffle.| 142| LOOP_MODE_CUSTOM = 4 | Custom playback.| 143 144### AVSession_ControlCommand 145 146``` 147enum AVSession_ControlCommand 148``` 149 150**Description** 151 152Enumerates the playback control commands. 153 154**Since**: 13 155 156| Enum Item| Description| 157| -- | -- | 158| CONTROL_CMD_INVALID = -1 | Invalid control command.| 159| CONTROL_CMD_PLAY = 0 | Play command.| 160| CONTROL_CMD_PAUSE = 1 | Pause command.| 161| CONTROL_CMD_STOP = 2 | Stop command.| 162| CONTROL_CMD_PLAY_NEXT = 3 | Command for playing the next media asset.| 163| CONTROL_CMD_PLAY_PREVIOUS = 4 | Command for playing the previous media asset.| 164 165### AVSessionCallback_Result 166 167``` 168enum AVSessionCallback_Result 169``` 170 171**Description** 172 173Enumerates the callback execution results. 174 175**Since**: 13 176 177| Enum Item| Description| 178| -- | -- | 179| AVSESSION_CALLBACK_RESULT_SUCCESS = 0 | The operation is successful.| 180| AVSESSION_CALLBACK_RESULT_FAILURE = -1 | The operation fails.| 181 182 183## Function Description 184 185### OH_AVSessionCallback_OnCommand() 186 187``` 188typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnCommand)(OH_AVSession* session,AVSession_ControlCommand command, void* userData) 189``` 190 191**Description** 192 193Defines a callback for a common playback control command. 194 195**Since**: 13 196 197### OH_AVSessionCallback_OnFastForward() 198 199``` 200typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnFastForward)(OH_AVSession* session,uint32_t seekTime, void* userData) 201``` 202 203**Description** 204 205Defines a callback for the fast-forward operation. 206 207**Since**: 13 208 209### OH_AVSessionCallback_OnRewind() 210 211``` 212typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnRewind)(OH_AVSession* session,uint32_t seekTime, void* userData) 213``` 214 215**Description** 216 217Defines a callback for the rewind operation. 218 219**Since**: 13 220 221### OH_AVSessionCallback_OnSeek() 222 223``` 224typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnSeek)(OH_AVSession* session,uint64_t seekTime, void* userData) 225``` 226 227**Description** 228 229Defines a callback for the seek operation. 230 231**Since**: 13 232 233### OH_AVSessionCallback_OnSetLoopMode() 234 235``` 236typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnSetLoopMode)(OH_AVSession* session,AVSession_LoopMode curLoopMode, void* userData) 237``` 238 239**Description** 240 241Defines a callback for the operation of setting the loop mode. 242 243**Since**: 13 244 245### OH_AVSessionCallback_OnToggleFavorite() 246 247``` 248typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnToggleFavorite)(OH_AVSession* session,const char* assetId, void* userData) 249``` 250 251**Description** 252 253Defines a callback for the operation of favoriting a media asset. 254 255**Since**: 13 256 257### OH_AVSession_Create() 258 259``` 260AVSession_ErrCode OH_AVSession_Create(AVSession_Type sessionType, const char* sessionTag,const char* bundleName, const char* abilityName, OH_AVSession** avsession) 261``` 262 263**Description** 264 265Creates a session object. 266 267**Since**: 13 268 269 270**Parameters** 271 272| Name| Description| 273| -- | -- | 274| [AVSession_Type](capi-native-avsession-h.md#avsession_type) sessionType | Session type. For details about the available options, see [AVSession_Type](capi-native-avsession-h.md#avsession_type).| 275| const char* sessionTag | Pointer to the session tag.| 276| const char* bundleName | Pointer to the bundle name.| 277| const char* abilityName | Pointer to the ability name.| 278| [OH_AVSession](capi-ohavsession-oh-avsession.md)** avsession | Double pointer to the session object created.| 279 280**Returns** 281 282| Type| Description| 283| -- | -- | 284| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **sessionType** is invalid.<br> 2. **sessionTag** is nullptr.<br> 3. **bundleName** is nullptr.<br> 4. **abilityName** is nullptr.<br> 5. **avsession** is nullptr.| 285 286### OH_AVSession_Destroy() 287 288``` 289AVSession_ErrCode OH_AVSession_Destroy(OH_AVSession* avsession) 290``` 291 292**Description** 293 294Destroys a session object. 295 296**Since**: 13 297 298 299**Parameters** 300 301| Name| Description| 302| -- | -- | 303| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 304 305**Returns** 306 307| Type| Description| 308| -- | -- | 309| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_INVALID_PARAMETER**: **avsession** is nullptr.| 310 311### OH_AVSession_Activate() 312 313``` 314AVSession_ErrCode OH_AVSession_Activate(OH_AVSession* avsession) 315``` 316 317**Description** 318 319Activates a session. 320 321**Since**: 13 322 323 324**Parameters** 325 326| Name| Description| 327| -- | -- | 328| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 329 330**Returns** 331 332| Type| Description| 333| -- | -- | 334| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_INVALID_PARAMETER**: **avsession** is nullptr.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.| 335 336### OH_AVSession_Deactivate() 337 338``` 339AVSession_ErrCode OH_AVSession_Deactivate(OH_AVSession* avsession) 340``` 341 342**Description** 343 344Deactivates a session. 345 346**Since**: 13 347 348 349**Parameters** 350 351| Name| Description| 352| -- | -- | 353| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 354 355**Returns** 356 357| Type| Description| 358| -- | -- | 359| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_INVALID_PARAMETER**: **avsession** is nullptr.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.| 360 361### OH_AVSession_GetSessionType() 362 363``` 364AVSession_ErrCode OH_AVSession_GetSessionType(OH_AVSession* avsession, AVSession_Type* sessionType) 365``` 366 367**Description** 368 369Obtains the session type. 370 371**Since**: 13 372 373 374**Parameters** 375 376| Name| Description| 377| -- | -- | 378| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 379| [AVSession_Type](capi-native-avsession-h.md#avsession_type)* sessionType | Pointer to the session type obtained.| 380 381**Returns** 382 383| Type| Description| 384| -- | -- | 385| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal or an error occurs.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **sessionType** is nullptr.| 386 387### OH_AVSession_GetSessionId() 388 389``` 390AVSession_ErrCode OH_AVSession_GetSessionId(OH_AVSession* avsession, const char** sessionId) 391``` 392 393**Description** 394 395Obtains the session ID. 396 397**Since**: 13 398 399 400**Parameters** 401 402| Name| Description| 403| -- | -- | 404| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 405| const char** sessionId | Double pointer to the session ID obtained.| 406 407**Returns** 408 409| Type| Description| 410| -- | -- | 411| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **sessionId** is nullptr.| 412 413### OH_AVSession_SetAVMetadata() 414 415``` 416AVSession_ErrCode OH_AVSession_SetAVMetadata(OH_AVSession* avsession, OH_AVMetadata* avmetadata) 417``` 418 419**Description** 420 421Sets media metadata. 422 423**Since**: 13 424 425 426**Parameters** 427 428| Name| Description| 429| -- | -- | 430| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 431| [OH_AVMetadata](capi-ohavsession-oh-avmetadatastruct.md)* avmetadata | Pointer to the media metadata.| 432 433**Returns** 434 435| Type| Description| 436| -- | -- | 437| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **avmetadata** is nullptr.| 438 439### OH_AVSession_SetPlaybackState() 440 441``` 442AVSession_ErrCode OH_AVSession_SetPlaybackState(OH_AVSession* avsession,AVSession_PlaybackState playbackState) 443``` 444 445**Description** 446 447Sets the playback state. 448 449**Since**: 13 450 451 452**Parameters** 453 454| Name| Description| 455| -- | -- | 456| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 457| [AVSession_PlaybackState](capi-native-avsession-h.md#avsession_playbackstate) playbackState | Playback state.| 458 459**Returns** 460 461| Type| Description| 462| -- | -- | 463| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **playbackState** is invalid.| 464 465### OH_AVSession_SetPlaybackPosition() 466 467``` 468AVSession_ErrCode OH_AVSession_SetPlaybackPosition(OH_AVSession* avsession,AVSession_PlaybackPosition* playbackPosition) 469``` 470 471**Description** 472 473Sets the playback position. 474 475**Since**: 13 476 477 478**Parameters** 479 480| Name| Description| 481| -- | -- | 482| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 483| [AVSession_PlaybackPosition](capi-ohavsession-avsession-playbackposition.md)* playbackPosition | Pointer to the playback position.| 484 485**Returns** 486 487| Type| Description| 488| -- | -- | 489| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **playbackPosition** is nullptr.| 490 491### OH_AVSession_SetFavorite() 492 493``` 494AVSession_ErrCode OH_AVSession_SetFavorite(OH_AVSession* avsession, bool favorite) 495``` 496 497**Description** 498 499Favorites or unfavorites the media asset. 500 501**Since**: 13 502 503 504**Parameters** 505 506| Name| Description| 507| -- | -- | 508| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 509| bool favorite | Whether to favorite or unfavorite the media asset. **true** means to favorite, **false** otherwise.| 510 511**Returns** 512 513| Type| Description| 514| -- | -- | 515| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**: **avsession** is nullptr.| 516 517### OH_AVSession_SetLoopMode() 518 519``` 520AVSession_ErrCode OH_AVSession_SetLoopMode(OH_AVSession* avsession, AVSession_LoopMode loopMode) 521``` 522 523**Description** 524 525Sets a loop mode. 526 527**Since**: 13 528 529 530**Parameters** 531 532| Name| Description| 533| -- | -- | 534| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 535| [AVSession_LoopMode](capi-native-avsession-h.md#avsession_loopmode) loopMode | Loop mode.| 536 537**Returns** 538 539| Type| Description| 540| -- | -- | 541| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **loopMode** is invalid.| 542 543### OH_AVSession_RegisterCommandCallback() 544 545``` 546AVSession_ErrCode OH_AVSession_RegisterCommandCallback(OH_AVSession* avsession,AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback, void* userData) 547``` 548 549**Description** 550 551Registers a callback for a common playback control command. 552 553**Since**: 13 554 555 556**Parameters** 557 558| Name| Description| 559| -- | -- | 560| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 561| [AVSession_ControlCommand](capi-native-avsession-h.md#avsession_controlcommand) command | Playback control command.| 562| [OH_AVSessionCallback_OnCommand](capi-native-avsession-h.md#oh_avsessioncallback_oncommand) callback | Callback for the control command.| 563| void* userData | Pointer to the application data passed through the callback functions.| 564 565**Returns** 566 567| Type| Description| 568| -- | -- | 569| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_CODE_COMMAND_INVALID**: The playback control command is invalid.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 570 571### OH_AVSession_UnregisterCommandCallback() 572 573``` 574AVSession_ErrCode OH_AVSession_UnregisterCommandCallback(OH_AVSession* avsession,AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback) 575``` 576 577**Description** 578 579Unregisters the callback for a common playback control command. 580 581**Since**: 13 582 583 584**Parameters** 585 586| Name| Description| 587| -- | -- | 588| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 589| [AVSession_ControlCommand](capi-native-avsession-h.md#avsession_controlcommand) command | Playback control command.| 590| [OH_AVSessionCallback_OnCommand](capi-native-avsession-h.md#oh_avsessioncallback_oncommand) callback | Callback for the control command.| 591 592**Returns** 593 594| Type| Description| 595| -- | -- | 596| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_CODE_COMMAND_INVALID**: The playback control command is invalid.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 597 598### OH_AVSession_RegisterForwardCallback() 599 600``` 601AVSession_ErrCode OH_AVSession_RegisterForwardCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnFastForward callback, void* userData) 602``` 603 604**Description** 605 606Registers a callback for the fast-forward operation. 607 608**Since**: 13 609 610 611**Parameters** 612 613| Name| Description| 614| -- | -- | 615| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 616| [OH_AVSessionCallback_OnFastForward](capi-native-avsession-h.md#oh_avsessioncallback_onfastforward) callback | Callback for the fast-forward operation.| 617| void* userData | Pointer to the application data passed through the callback functions.| 618 619**Returns** 620 621| Type| Description| 622| -- | -- | 623| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 624 625### OH_AVSession_UnregisterForwardCallback() 626 627``` 628AVSession_ErrCode OH_AVSession_UnregisterForwardCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnFastForward callback) 629``` 630 631**Description** 632 633Unregisters the callback for the fast-forward operation. 634 635**Since**: 13 636 637 638**Parameters** 639 640| Name| Description| 641| -- | -- | 642| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 643| [OH_AVSessionCallback_OnFastForward](capi-native-avsession-h.md#oh_avsessioncallback_onfastforward) callback | Callback for the fast-forward operation.| 644 645**Returns** 646 647| Type| Description| 648| -- | -- | 649| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 650 651### OH_AVSession_RegisterRewindCallback() 652 653``` 654AVSession_ErrCode OH_AVSession_RegisterRewindCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnRewind callback, void* userData) 655``` 656 657**Description** 658 659Registers a callback for the rewind operation. 660 661**Since**: 13 662 663 664**Parameters** 665 666| Name| Description| 667| -- | -- | 668| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 669| [OH_AVSessionCallback_OnRewind](capi-native-avsession-h.md#oh_avsessioncallback_onrewind) callback | Callback for the rewind operation.| 670| void* userData | Pointer to the application data passed through the callback functions.| 671 672**Returns** 673 674| Type| Description| 675| -- | -- | 676| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 677 678### OH_AVSession_UnregisterRewindCallback() 679 680``` 681AVSession_ErrCode OH_AVSession_UnregisterRewindCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnRewind callback) 682``` 683 684**Description** 685 686Unregisters the callback for the rewind operation. 687 688**Since**: 13 689 690 691**Parameters** 692 693| Name| Description| 694| -- | -- | 695| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 696| [OH_AVSessionCallback_OnRewind](capi-native-avsession-h.md#oh_avsessioncallback_onrewind) callback | Callback for the rewind operation.| 697 698**Returns** 699 700| Type| Description| 701| -- | -- | 702| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 703 704### OH_AVSession_RegisterSeekCallback() 705 706``` 707AVSession_ErrCode OH_AVSession_RegisterSeekCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnSeek callback, void* userData) 708``` 709 710**Description** 711 712Registers a callback for the seek operation. 713 714**Since**: 13 715 716 717**Parameters** 718 719| Name| Description| 720| -- | -- | 721| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 722| [OH_AVSessionCallback_OnSeek](capi-native-avsession-h.md#oh_avsessioncallback_onseek) callback | Callback for the seek operation.| 723| void* userData | Pointer to the application data passed through the callback functions.| 724 725**Returns** 726 727| Type| Description| 728| -- | -- | 729| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 730 731### OH_AVSession_UnregisterSeekCallback() 732 733``` 734AVSession_ErrCode OH_AVSession_UnregisterSeekCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnSeek callback) 735``` 736 737**Description** 738 739Unregisters the callback for the seek operation. 740 741**Since**: 13 742 743 744**Parameters** 745 746| Name| Description| 747| -- | -- | 748| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 749| [OH_AVSessionCallback_OnSeek](capi-native-avsession-h.md#oh_avsessioncallback_onseek) callback | Callback for the seek operation.| 750 751**Returns** 752 753| Type| Description| 754| -- | -- | 755| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 756 757### OH_AVSession_RegisterSetLoopModeCallback() 758 759``` 760AVSession_ErrCode OH_AVSession_RegisterSetLoopModeCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnSetLoopMode callback, void* userData) 761``` 762 763**Description** 764 765Registers a callback for the operation of setting the loop mode. 766 767**Since**: 13 768 769 770**Parameters** 771 772| Name| Description| 773| -- | -- | 774| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 775| [OH_AVSessionCallback_OnSetLoopMode](capi-native-avsession-h.md#oh_avsessioncallback_onsetloopmode) callback | Callback for the operation of setting the loop mode.| 776| void* userData | Pointer to the application data passed through the callback functions.| 777 778**Returns** 779 780| Type| Description| 781| -- | -- | 782| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 783 784### OH_AVSession_UnregisterSetLoopModeCallback() 785 786``` 787AVSession_ErrCode OH_AVSession_UnregisterSetLoopModeCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnSetLoopMode callback) 788``` 789 790**Description** 791 792Unregisters the callback for the operation of setting the loop mode. 793 794**Since**: 13 795 796 797**Parameters** 798 799| Name| Description| 800| -- | -- | 801| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 802| [OH_AVSessionCallback_OnSetLoopMode](capi-native-avsession-h.md#oh_avsessioncallback_onsetloopmode) callback | Callback for the operation of setting the loop mode.| 803 804**Returns** 805 806| Type| Description| 807| -- | -- | 808| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 809 810### OH_AVSession_RegisterToggleFavoriteCallback() 811 812``` 813AVSession_ErrCode OH_AVSession_RegisterToggleFavoriteCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnToggleFavorite callback, void* userData) 814``` 815 816**Description** 817 818Registers a callback for the operation of favoriting a media asset. 819 820**Since**: 13 821 822 823**Parameters** 824 825| Name| Description| 826| -- | -- | 827| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 828| [OH_AVSessionCallback_OnToggleFavorite](capi-native-avsession-h.md#oh_avsessioncallback_ontogglefavorite) callback | Callback for the operation of favoriting a media asset.| 829| void* userData | Pointer to the application data passed through the callback functions.| 830 831**Returns** 832 833| Type| Description| 834| -- | -- | 835| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 836 837### OH_AVSession_UnregisterToggleFavoriteCallback() 838 839``` 840AVSession_ErrCode OH_AVSession_UnregisterToggleFavoriteCallback(OH_AVSession* avsession,OH_AVSessionCallback_OnToggleFavorite callback) 841``` 842 843**Description** 844 845Unregisters the callback for the operation of favoriting a media asset. 846 847**Since**: 13 848 849 850**Parameters** 851 852| Name| Description| 853| -- | -- | 854| [OH_AVSession](capi-ohavsession-oh-avsession.md)* avsession | Pointer to a session object.| 855| [OH_AVSessionCallback_OnToggleFavorite](capi-native-avsession-h.md#oh_avsessioncallback_ontogglefavorite) callback | Callback for the operation of favoriting a media asset.| 856 857**Returns** 858 859| Type| Description| 860| -- | -- | 861| [AVSession_ErrCode](capi-native-avsession-errors-h.md#avsession_errcode) | **AV_SESSION_ERR_SUCCESS**: The function is executed successfully.<br> **AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.<br> **AV_SESSION_ERR_INVALID_PARAMETER**:<br> 1. **avsession** is nullptr.<br> 2. **callback** is nullptr.| 862