1# native_avsession.h 2 3 4## Overview 5 6The **native_avsession.h** file declares the AVSession definition, which can be used to set metadata, playback state, and other information. 7 8**Library**: libohavsession.so 9 10**File to include**: <multimedia/av_session/native_avsession.h> 11 12**System capability**: SystemCapability.Multimedia.AVSession.Core 13 14**Since**: 13 15 16**Related module**: [OHAVSession](_o_h_a_v_session.md) 17 18 19## Summary 20 21 22### Structs 23 24| Name| Description| 25| -------- | -------- | 26| struct [AVSession_PlaybackPosition](_a_v_session___playback_position.md) | Describes the information related to the playback position.| 27 28 29### Types 30 31| Name| Description| 32| -------- | -------- | 33| typedef struct [AVSession_PlaybackPosition](_a_v_session___playback_position.md) [AVSession_PlaybackPosition](_o_h_a_v_session.md#avsession_playbackposition) | Defines a struct for the information related to the playback position.| 34| typedef enum [AVSession_ControlCommand](_o_h_a_v_session.md#avsession_controlcommand) [AVSession_ControlCommand](_o_h_a_v_session.md#avsession_controlcommand) | Defines an enum for the playback control commands.| 35| typedef [AVSessionCallback_Result](_o_h_a_v_session.md#avsessioncallback_result)(\* [OH_AVSessionCallback_OnCommand](_o_h_a_v_session.md#oh_avsessioncallback_oncommand)) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*session, [AVSession_ControlCommand](_o_h_a_v_session.md#avsession_controlcommand) command, void \*userData) | Defines a callback for a common playback control command.| 36| typedef [AVSessionCallback_Result](_o_h_a_v_session.md#avsessioncallback_result)(\* [OH_AVSessionCallback_OnFastForward](_o_h_a_v_session.md#oh_avsessioncallback_onfastforward)) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*session, uint32_t seekTime, void \*userData) | Defines a callback for the fast-forward operation.| 37| typedef [AVSessionCallback_Result](_o_h_a_v_session.md#avsessioncallback_result)(\* [OH_AVSessionCallback_OnRewind](_o_h_a_v_session.md#oh_avsessioncallback_onrewind)) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*session, uint32_t seekTime, void \*userData) | Defines a callback for the rewind operation.| 38| typedef [AVSessionCallback_Result](_o_h_a_v_session.md#avsessioncallback_result)(\* [OH_AVSessionCallback_OnSeek](_o_h_a_v_session.md#oh_avsessioncallback_onseek)) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*session, uint64_t seekTime, void \*userData) | Defines a callback for the seek operation.| 39| typedef [AVSessionCallback_Result](_o_h_a_v_session.md#avsessioncallback_result)(\* [OH_AVSessionCallback_OnSetLoopMode](_o_h_a_v_session.md#oh_avsessioncallback_onsetloopmode)) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*session, [AVSession_LoopMode](_o_h_a_v_session.md#avsession_loopmode) curLoopMode, void \*userData) | Defines a callback for the operation of setting the loop mode.| 40| typedef [AVSessionCallback_Result](_o_h_a_v_session.md#avsessioncallback_result)(\* [OH_AVSessionCallback_OnToggleFavorite](_o_h_a_v_session.md#oh_avsessioncallback_ontogglefavorite)) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*session, const char \*assetId, void \*userData) | Defines a callback for the operation of favoriting a media asset.| 41| typedef struct [OH_AVSession](_o_h_a_v_session.md#oh_avsession) [OH_AVSession](_o_h_a_v_session.md#oh_avsession) | Defines a struct for the playback control session object.| 42 43 44### Enums 45 46| Name| Description| 47| -------- | -------- | 48| [AVSession_Type](_o_h_a_v_session.md#avsession_type) {<br>SESSION_TYPE_AUDIO = 0,<br>SESSION_TYPE_VIDEO = 1,<br>SESSION_TYPE_VOICE_CALL = 2,<br>SESSION_TYPE_VIDEO_CALL = 3 } | Enumerates the session types.| 49| [AVSession_PlaybackState](_o_h_a_v_session.md#avsession_playbackstate) {<br>PLAYBACK_STATE_INITIAL = 0,<br>PLAYBACK_STATE_PREPARING = 1,<br>PLAYBACK_STATE_PLAYING = 2,<br>PLAYBACK_STATE_PAUSED = 3,<br>PLAYBACK_STATE_FAST_FORWARDING = 4,<br>PLAYBACK_STATE_REWINDED = 5,<br>PLAYBACK_STATE_STOPPED = 6,<br>PLAYBACK_STATE_COMPLETED = 7,<br>PLAYBACK_STATE_RELEASED = 8,<br>PLAYBACK_STATE_ERROR = 9,<br>PLAYBACK_STATE_IDLE = 10,<br>PLAYBACK_STATE_BUFFERING = 11,<br>PLAYBACK_STATE_MAX = 12<br>} | Enumerates the media playback states.| 50| [AVSession_LoopMode](_o_h_a_v_session.md#avsession_loopmode) {<br>LOOP_MODE_SEQUENCE = 0,<br>LOOP_MODE_SINGLE = 1,<br>LOOP_MODE_LIST = 2,<br>LOOP_MODE_SHUFFLE = 3,<br>LOOP_MODE_CUSTOM = 4<br>} | Enumerates the loop modes of media playback.| 51| [AVSession_ControlCommand](_o_h_a_v_session.md#avsession_controlcommand) {<br>CONTROL_CMD_INVALID = -1,<br>CONTROL_CMD_PLAY = 0,<br>CONTROL_CMD_PAUSE = 1,<br>CONTROL_CMD_STOP = 2,<br>CONTROL_CMD_PLAY_NEXT = 3,<br>CONTROL_CMD_PLAY_PREVIOUS = 4<br>} | Enumerates the playback control commands.| 52| [AVSessionCallback_Result](_o_h_a_v_session.md#avsessioncallback_result) {<br>AVSESSION_CALLBACK_RESULT_SUCCESS = 0,<br>AVSESSION_CALLBACK_RESULT_FAILURE = -1 } | Enumerates the callback execution results.| 53 54 55### Functions 56 57| Name| Description| 58| -------- | -------- | 59| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_Create](_o_h_a_v_session.md#oh_avsession_create) ([AVSession_Type](_o_h_a_v_session.md#avsession_type) sessionType, const char \*sessionTag, const char \*bundleName, const char \*abilityName, [OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*\*avsession) | Creates a session object.| 60| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_Destroy](_o_h_a_v_session.md#oh_avsession_destroy) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession) | Destroys a session object.| 61| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_Activate](_o_h_a_v_session.md#oh_avsession_activate) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession) | Activates a session.| 62| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_Deactivate](_o_h_a_v_session.md#oh_avsession_deactivate) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession) | Deactivates a session.| 63| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_GetSessionType](_o_h_a_v_session.md#oh_avsession_getsessiontype) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [AVSession_Type](_o_h_a_v_session.md#avsession_type) \*sessionType) | Obtains the session type.| 64| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_GetSessionId](_o_h_a_v_session.md#oh_avsession_getsessionid) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, const char \*\*sessionId) | Obtains the session ID.| 65| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_SetAVMetadata](_o_h_a_v_session.md#oh_avsession_setavmetadata) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVMetadata](_o_h_a_v_session.md#oh_avmetadata) \*avmetadata) | Sets media metadata.| 66| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_SetPlaybackState](_o_h_a_v_session.md#oh_avsession_setplaybackstate) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [AVSession_PlaybackState](_o_h_a_v_session.md#avsession_playbackstate) playbackState) | Sets the playback state.| 67| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_SetPlaybackPosition](_o_h_a_v_session.md#oh_avsession_setplaybackposition) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [AVSession_PlaybackPosition](_a_v_session___playback_position.md) \*playbackPosition) | Sets the playback position.| 68| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_SetFavorite](_o_h_a_v_session.md#oh_avsession_setfavorite) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, bool favorite) | Favorites or unfavorites the media asset.| 69| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_SetLoopMode](_o_h_a_v_session.md#oh_avsession_setloopmode) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [AVSession_LoopMode](_o_h_a_v_session.md#avsession_loopmode) loopMode) | Sets the loop mode.| 70| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_RegisterCommandCallback](_o_h_a_v_session.md#oh_avsession_registercommandcallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [AVSession_ControlCommand](_o_h_a_v_session.md#avsession_controlcommand) command, [OH_AVSessionCallback_OnCommand](_o_h_a_v_session.md#oh_avsessioncallback_oncommand) callback, void \*userData) | Registers a callback for a common playback control command.| 71| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_UnregisterCommandCallback](_o_h_a_v_session.md#oh_avsession_unregistercommandcallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [AVSession_ControlCommand](_o_h_a_v_session.md#avsession_controlcommand) command, [OH_AVSessionCallback_OnCommand](_o_h_a_v_session.md#oh_avsessioncallback_oncommand) callback) | Unregisters the callback for a common playback control command.| 72| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_RegisterForwardCallback](_o_h_a_v_session.md#oh_avsession_registerforwardcallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnFastForward](_o_h_a_v_session.md#oh_avsessioncallback_onfastforward) callback, void \*userData) | Registers a callback for the fast-forward operation.| 73| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_UnregisterForwardCallback](_o_h_a_v_session.md#oh_avsession_unregisterforwardcallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnFastForward](_o_h_a_v_session.md#oh_avsessioncallback_onfastforward) callback) | Unregisters the callback for the fast-forward operation.| 74| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_RegisterRewindCallback](_o_h_a_v_session.md#oh_avsession_registerrewindcallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnRewind](_o_h_a_v_session.md#oh_avsessioncallback_onrewind) callback, void \*userData) | Registers a callback for the rewind operation.| 75| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_UnregisterRewindCallback](_o_h_a_v_session.md#oh_avsession_unregisterrewindcallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnRewind](_o_h_a_v_session.md#oh_avsessioncallback_onrewind) callback) | Unregisters the callback for the rewind operation.| 76| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_RegisterSeekCallback](_o_h_a_v_session.md#oh_avsession_registerseekcallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSeek](_o_h_a_v_session.md#oh_avsessioncallback_onseek) callback, void \*userData) | Registers a callback for the seek operation.| 77| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_UnregisterSeekCallback](_o_h_a_v_session.md#oh_avsession_unregisterseekcallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSeek](_o_h_a_v_session.md#oh_avsessioncallback_onseek) callback) | Unregisters the callback for the seek operation.| 78| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_RegisterSetLoopModeCallback](_o_h_a_v_session.md#oh_avsession_registersetloopmodecallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSetLoopMode](_o_h_a_v_session.md#oh_avsessioncallback_onsetloopmode) callback, void \*userData) | Registers a callback for the operation of setting the loop mode.| 79| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_UnregisterSetLoopModeCallback](_o_h_a_v_session.md#oh_avsession_unregistersetloopmodecallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSetLoopMode](_o_h_a_v_session.md#oh_avsessioncallback_onsetloopmode) callback) | Unregisters the callback for the operation of setting the loop mode.| 80| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_RegisterToggleFavoriteCallback](_o_h_a_v_session.md#oh_avsession_registertogglefavoritecallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnToggleFavorite](_o_h_a_v_session.md#oh_avsessioncallback_ontogglefavorite) callback, void \*userData) | Registers a callback for the operation of favoriting a media asset.| 81| [AVSession_ErrCode](_o_h_a_v_session.md#avsession_errcode) [OH_AVSession_UnregisterToggleFavoriteCallback](_o_h_a_v_session.md#oh_avsession_unregistertogglefavoritecallback) ([OH_AVSession](_o_h_a_v_session.md#oh_avsession) \*avsession, [OH_AVSessionCallback_OnToggleFavorite](_o_h_a_v_session.md#oh_avsessioncallback_ontogglefavorite) callback) | Unregisters the callback for the operation of favoriting a media asset.| 82