# OHAVSession


## Overview

The OHAVSession module defines the C APIs of the playback control module.

You can use OHAVSession to access AVSession as a provider. For details about the development guide and samples, see [AVSession Provider](../../media/avsession/using-ohavsession-developer.md).

**System capability**: SystemCapability.Multimedia.AVSession.Core

**Since**: 13


## Summary


### Files

| Name| Description| 
| -------- | -------- |
| [native_avmetadata.h](native__avmetadata_8h.md) | Declares the definitions of playback control metadata.| 
| [native_avsession.h](native__avsession_8h.md) | Declares the AVSession definition, which can be used to set metadata, playback state, and other information.| 
| [native_avsession_errors.h](native__avsession__errors_8h.md) | Declares the playback control error codes.| 


### Structs

| Name| Description| 
| -------- | -------- |
| struct  [AVSession_PlaybackPosition](_a_v_session___playback_position.md) | Describes the information related to the playback position.| 


### Types

| Name| Description| 
| -------- | -------- |
| typedef struct OH_AVMetadataBuilderStruct [OH_AVMetadataBuilder](#oh_avmetadatabuilder) | Defines a struct for the session metadata builder. The builder is used to construct session metadata.| 
| typedef struct OH_AVMetadataStruct [OH_AVMetadata](#oh_avmetadata) | Defines a struct for the session metadata. It is an AVMetadata instance set for a media asset.| 
| typedef struct [AVSession_PlaybackPosition](_a_v_session___playback_position.md) [AVSession_PlaybackPosition](#avsession_playbackposition) | Defines a struct for the information related to the playback position.| 
| typedef enum [AVSession_ControlCommand](#avsession_controlcommand) [AVSession_ControlCommand](#avsession_controlcommand) | Defines an enum for the playback control commands.| 
| typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnCommand](#oh_avsessioncallback_oncommand)) ([OH_AVSession](#oh_avsession) \*session, [AVSession_ControlCommand](#avsession_controlcommand) command, void \*userData) | Defines a callback for a common playback control command.| 
| typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward)) ([OH_AVSession](#oh_avsession) \*session, uint32_t seekTime, void \*userData) | Defines a callback for the fast-forward operation.| 
| typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind)) ([OH_AVSession](#oh_avsession) \*session, uint32_t seekTime, void \*userData) | Defines a callback for the rewind operation.| 
| typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek)) ([OH_AVSession](#oh_avsession) \*session, uint64_t seekTime, void \*userData) | Defines a callback for the seek operation.| 
| typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode)) ([OH_AVSession](#oh_avsession) \*session, [AVSession_LoopMode](#avsession_loopmode) curLoopMode, void \*userData) | Defines a callback for the operation of setting the loop mode.| 
| typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite)) ([OH_AVSession](#oh_avsession) \*session, const char \*assetId, void \*userData) | Defines a callback for the operation of favoriting a media asset.| 
| typedef struct [OH_AVSession](#oh_avsession) [OH_AVSession](#oh_avsession) | Defines a struct for the playback control session object.| 


### Enums

| Name| Description| 
| -------- | -------- |
| [AVMetadata_Result](#avmetadata_result) {<br>AVMETADATA_SUCCESS = 0,<br>AVMETADATA_ERROR_INVALID_PARAM = 1,<br>AVMETADATA_ERROR_NO_MEMORY = 2 } | Enumerates the error codes related to metadata operations.| 
| [AVMetadata_SkipIntervals](#avmetadata_skipintervals) {<br>SECONDS_10 = 10,<br>SECONDS_15 = 15,<br>SECONDS_30 = 30 } | Enumerates the fast-forward or rewind intervals supported by the media session.| 
| [AVMetadata_DisplayTag](#avmetadata_displaytag) { AVSESSION_DISPLAYTAG_AUDIO_VIVID = 1 } | Enumerates the display tags of the media asset. The display tag is a special type identifier of the media audio source.| 
| [AVSession_Type](#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.| 
| [AVSession_PlaybackState](#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.| 
| [AVSession_LoopMode](#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.| 
| [AVSession_ControlCommand](#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.| 
| [AVSessionCallback_Result](#avsessioncallback_result) {<br>AVSESSION_CALLBACK_RESULT_SUCCESS = 0,<br>AVSESSION_CALLBACK_RESULT_FAILURE = -1 } | Enumerates the callback execution results.| 
| [AVSession_ErrCode](#avsession_errcode) {<br>AV_SESSION_ERR_SUCCESS = 0,<br>AV_SESSION_ERR_INVALID_PARAMETER = 401,<br>AV_SESSION_ERR_SERVICE_EXCEPTION = 6600101,<br>AV_SESSION_ERR_CODE_SESSION_NOT_EXIST = 6600102,<br>AV_SESSION_ERR_CODE_COMMAND_INVALID = 6600105,<br>AV_SESSION_ERR_CODE_SESSION_INACTIVE = 6600106,<br>AV_SESSION_ERR_CODE_MESSAGE_OVERLOAD = 6600107<br>} | Enumerates the playback control error codes.| 


### Functions

| Name| Description| 
| -------- | -------- |
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_Create](#oh_avmetadatabuilder_create) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*\*builder) | Creates a metadata builder.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_Destroy](#oh_avmetadatabuilder_destroy) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder) | Destroys a metadata builder.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetAssetId](#oh_avmetadatabuilder_setassetid) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*assetId) | Sets the ID of the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetTitle](#oh_avmetadatabuilder_settitle) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*title) | Sets a title for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetArtist](#oh_avmetadatabuilder_setartist) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*artist) | Sets an artist for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetAuthor](#oh_avmetadatabuilder_setauthor) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*author) | Sets an author for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetAlbum](#oh_avmetadatabuilder_setalbum) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*album) | Sets an album name for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetWriter](#oh_avmetadatabuilder_setwriter) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*writer) | Sets a writer for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetComposer](#oh_avmetadatabuilder_setcomposer) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*composer) | Sets a composer for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetDuration](#oh_avmetadatabuilder_setduration) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, int64_t duration) | Sets the playback duration for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetMediaImageUri](#oh_avmetadatabuilder_setmediaimageuri) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*mediaImageUri) | Sets an image for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetSubtitle](#oh_avmetadatabuilder_setsubtitle) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*subtitle) | Sets a subtitle for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetDescription](#oh_avmetadatabuilder_setdescription) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*description) | Sets a description for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetLyric](#oh_avmetadatabuilder_setlyric) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*lyric) | Sets lyrics for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetSkipIntervals](#oh_avmetadatabuilder_setskipintervals) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, [AVMetadata_SkipIntervals](#avmetadata_skipintervals) intervals) | Sets the skip intervals for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetDisplayTags](#oh_avmetadatabuilder_setdisplaytags) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, int32_t tags) | Sets display tags for the media asset.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_GenerateAVMetadata](#oh_avmetadatabuilder_generateavmetadata) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, [OH_AVMetadata](#oh_avmetadata) \*\*avMetadata) | Generates an **OH_AVMetadata** object.| 
| [AVMetadata_Result](#avmetadata_result) [OH_AVMetadata_Destroy](#oh_avmetadata_destroy) ([OH_AVMetadata](#oh_avmetadata) \*avMetadata) | Releases an **OH_AVMetadata** object.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_Create](#oh_avsession_create) ([AVSession_Type](#avsession_type) sessionType, const char \*sessionTag, const char \*bundleName, const char \*abilityName, [OH_AVSession](#oh_avsession) \*\*avsession) | Creates a session object.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_Destroy](#oh_avsession_destroy) ([OH_AVSession](#oh_avsession) \*avsession) | Destroys a session object.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_Activate](#oh_avsession_activate) ([OH_AVSession](#oh_avsession) \*avsession) | Activates a session.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_Deactivate](#oh_avsession_deactivate) ([OH_AVSession](#oh_avsession) \*avsession) | Deactivates a session.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_GetSessionType](#oh_avsession_getsessiontype) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_Type](#avsession_type) \*sessionType) | Obtains the session type.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_GetSessionId](#oh_avsession_getsessionid) ([OH_AVSession](#oh_avsession) \*avsession, const char \*\*sessionId) | Obtains the session ID.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetAVMetadata](#oh_avsession_setavmetadata) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVMetadata](#oh_avmetadata) \*avmetadata) | Sets media metadata.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetPlaybackState](#oh_avsession_setplaybackstate) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_PlaybackState](#avsession_playbackstate) playbackState) | Sets the playback state.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetPlaybackPosition](#oh_avsession_setplaybackposition) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_PlaybackPosition](_a_v_session___playback_position.md) \*playbackPosition) | Sets the playback position.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetFavorite](#oh_avsession_setfavorite) ([OH_AVSession](#oh_avsession) \*avsession, bool favorite) | Favorites or unfavorites the media asset.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetLoopMode](#oh_avsession_setloopmode) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_LoopMode](#avsession_loopmode) loopMode) | Sets a loop mode.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterCommandCallback](#oh_avsession_registercommandcallback) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_ControlCommand](#avsession_controlcommand) command, [OH_AVSessionCallback_OnCommand](#oh_avsessioncallback_oncommand) callback, void \*userData) | Registers a callback for a common playback control command.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterCommandCallback](#oh_avsession_unregistercommandcallback) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_ControlCommand](#avsession_controlcommand) command, [OH_AVSessionCallback_OnCommand](#oh_avsessioncallback_oncommand) callback) | Unregisters the callback for a common playback control command.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterForwardCallback](#oh_avsession_registerforwardcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward) callback, void \*userData) | Registers a callback for the fast-forward operation.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterForwardCallback](#oh_avsession_unregisterforwardcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward) callback) | Unregisters the callback for the fast-forward operation.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterRewindCallback](#oh_avsession_registerrewindcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind) callback, void \*userData) | Registers a callback for the rewind operation.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterRewindCallback](#oh_avsession_unregisterrewindcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind) callback) | Unregisters the callback for the rewind operation.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterSeekCallback](#oh_avsession_registerseekcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek) callback, void \*userData) | Registers a callback for the seek operation.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterSeekCallback](#oh_avsession_unregisterseekcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek) callback) | Unregisters the callback for the seek operation.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterSetLoopModeCallback](#oh_avsession_registersetloopmodecallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode) callback, void \*userData) | Registers a callback for the operation of setting the loop mode.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterSetLoopModeCallback](#oh_avsession_unregistersetloopmodecallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode) callback) | Unregisters the callback for the operation of setting the loop mode.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterToggleFavoriteCallback](#oh_avsession_registertogglefavoritecallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite) callback, void \*userData) | Registers a callback for the operation of favoriting a media asset.| 
| [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterToggleFavoriteCallback](#oh_avsession_unregistertogglefavoritecallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite) callback) | Unregisters the callback for the operation of favoriting a media asset.| 


## Type Description


### AVSession_ControlCommand

```
typedef enum AVSession_ControlCommand AVSession_ControlCommand
```

**Description**

Defines an enum for the playback control commands.

**Since**: 13


### AVSession_PlaybackPosition

```
typedef struct AVSession_PlaybackPosition AVSession_PlaybackPosition
```

**Description**

Defines a struct for the information related to the playback position.

**Since**: 13


### OH_AVMetadata

```
typedef struct OH_AVMetadataStruct OH_AVMetadata
```

**Description**

Defines a struct for the session metadata. It is an AVMetadata instance set for a media asset.

**Since**: 13


### OH_AVMetadataBuilder

```
typedef struct OH_AVMetadataBuilderStruct OH_AVMetadataBuilder
```

**Description**

Defines a struct for the session metadata builder. The builder is used to construct session metadata.

**Since**: 13


### OH_AVSession

```
typedef struct OH_AVSession OH_AVSession
```

**Description**

Defines a struct for the playback control session object.

You can use **OH_AVSession_Create** to create such an object.

**Since**: 13


### OH_AVSessionCallback_OnCommand

```
typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnCommand)(OH_AVSession* session, AVSession_ControlCommand command, void* userData)
```

**Description**

Defines a callback for a common playback control command.

**Since**: 13


### OH_AVSessionCallback_OnFastForward

```
typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnFastForward)(OH_AVSession* session, uint32_t seekTime, void* userData)
```

**Description**

Defines a callback for the fast-forward operation.

**Since**: 13


### OH_AVSessionCallback_OnRewind

```
typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnRewind)(OH_AVSession* session, uint32_t seekTime, void* userData)
```

**Description**

Defines a callback for the rewind operation.

**Since**: 13


### OH_AVSessionCallback_OnSeek

```
typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnSeek)(OH_AVSession* session, uint64_t seekTime, void* userData)
```

**Description**

Defines a callback for the seek operation.

**Since**: 13


### OH_AVSessionCallback_OnSetLoopMode

```
typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnSetLoopMode)(OH_AVSession* session, AVSession_LoopMode curLoopMode, void* userData)
```

**Description**

Defines a callback for the operation of setting the loop mode.

**Since**: 13


### OH_AVSessionCallback_OnToggleFavorite

```
typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnToggleFavorite)(OH_AVSession* session, const char* assetId, void* userData)
```

**Description**

Defines a callback for the operation of favoriting a media asset.

**Since**: 13


## Enums


### AVMetadata_DisplayTag

```
enum AVMetadata_DisplayTag
```

**Description**

Enumerates the display tags of the media asset. The display tag is a special type identifier of the media audio source.

**Since**: 13

| Value| Description| 
| -------- | -------- |
| AVSESSION_DISPLAYTAG_AUDIO_VIVID | AUDIO VIVID.| 


### AVMetadata_Result

```
enum AVMetadata_Result
```

**Description**

Enumerates the error codes related to metadata operations.

**Since**: 13

| Value| Description| 
| -------- | -------- |
| AVMETADATA_SUCCESS | Operation successful.| 
| AVMETADATA_ERROR_INVALID_PARAM | Incorrect parameter.| 
| AVMETADATA_ERROR_NO_MEMORY | Insufficient memory.| 


### AVMetadata_SkipIntervals

```
enum AVMetadata_SkipIntervals
```

**Description**

Enumerates the fast-forward or rewind intervals supported by the media session.

**Since**: 13

| Value| Description| 
| -------- | -------- |
| SECONDS_10 | The time is 10 seconds.| 
| SECONDS_15 | The time is 15 seconds.| 
| SECONDS_30 | The time is 30 seconds.| 


### AVSession_ControlCommand

```
enum AVSession_ControlCommand
```

**Description**

Enumerates the playback control commands.

**Since**: 13

| Value| Description| 
| -------- | -------- |
| CONTROL_CMD_INVALID | Invalid control command.| 
| CONTROL_CMD_PLAY | Play command.| 
| CONTROL_CMD_PAUSE | Pause command.| 
| CONTROL_CMD_STOP | Stop command.| 
| CONTROL_CMD_PLAY_NEXT | Command for playing the next media asset.| 
| CONTROL_CMD_PLAY_PREVIOUS | Command for playing the previous media asset.| 


### AVSession_ErrCode

```
enum AVSession_ErrCode
```

**Description**

Enumerates the playback control error codes.

**Since**: 13

| Value| Description| 
| -------- | -------- |
| AV_SESSION_ERR_SUCCESS | The operation is successful.| 
| AV_SESSION_ERR_INVALID_PARAMETER | Parameter check fails.| 
| AV_SESSION_ERR_SERVICE_EXCEPTION | The session server is abnormal.| 
| AV_SESSION_ERR_CODE_SESSION_NOT_EXIST | The session does not exist.| 
| AV_SESSION_ERR_CODE_COMMAND_INVALID | The session command is invalid.| 
| AV_SESSION_ERR_CODE_SESSION_INACTIVE | The session is not activated.| 
| AV_SESSION_ERR_CODE_MESSAGE_OVERLOAD | Command and message overflow.| 


### AVSession_LoopMode

```
enum AVSession_LoopMode
```

**Description**

Enumerates the loop modes of media playback.

**Since**: 13

| Value| Description| 
| -------- | -------- |
| LOOP_MODE_SEQUENCE | Sequential playback.| 
| LOOP_MODE_SINGLE | Single loop.| 
| LOOP_MODE_LIST | Playlist loop.| 
| LOOP_MODE_SHUFFLE | Shuffle.| 
| LOOP_MODE_CUSTOM | Custom playback.| 


### AVSession_PlaybackState

```
enum AVSession_PlaybackState
```

**Description**

Enumerates the media playback states.

**Since**: 13

| Value| Description| 
| -------- | -------- |
| PLAYBACK_STATE_INITIAL | Initial state.| 
| PLAYBACK_STATE_PREPARING | Ready.| 
| PLAYBACK_STATE_PLAYING | Playing.| 
| PLAYBACK_STATE_PAUSED | Paused.| 
| PLAYBACK_STATE_FAST_FORWARDING | Fast-forwarding.| 
| PLAYBACK_STATE_REWINDED | Rewinded.| 
| PLAYBACK_STATE_STOPPED | Stopped.| 
| PLAYBACK_STATE_COMPLETED | Playback complete.| 
| PLAYBACK_STATE_RELEASED | Released.| 
| PLAYBACK_STATE_ERROR | Error.| 
| PLAYBACK_STATE_IDLE | Idle.| 
| PLAYBACK_STATE_BUFFERING | Buffering.| 
| PLAYBACK_STATE_MAX | Maximum value. (Error code 401 is returned in this case.)| 


### AVSession_Type

```
enum AVSession_Type
```

**Description**

Enumerates the session types.

**Since**: 13

| Value| Description| 
| -------- | -------- |
| SESSION_TYPE_AUDIO | Audio.| 
| SESSION_TYPE_VIDEO | Video.| 
| SESSION_TYPE_VOICE_CALL | Audio call.| 
| SESSION_TYPE_VIDEO_CALL | Video call.| 


### AVSessionCallback_Result

```
enum AVSessionCallback_Result
```

**Description**

Enumerates the callback execution results.

**Since**: 13

| Value| Description| 
| -------- | -------- |
| AVSESSION_CALLBACK_RESULT_SUCCESS | The operation is successful.| 
| AVSESSION_CALLBACK_RESULT_FAILURE | The operation fails.| 


## Function Description


### OH_AVMetadata_Destroy()

```
AVMetadata_Result OH_AVMetadata_Destroy(OH_AVMetadata* avMetadata)
```

**Description**

Releases an **OH_AVMetadata** object.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avMetadata | Pointer to an **OH_AVMetadata** object.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**: **avMetadata** is a null pointer.


### OH_AVMetadataBuilder_Create()

```
AVMetadata_Result OH_AVMetadataBuilder_Create(OH_AVMetadataBuilder** builder)
```

**Description**

Creates a metadata builder.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Double pointer to the builder created.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**: **builder** is a null pointer.

**AVMETADATA_ERROR_NO_MEMORY**: There is no sufficient memory.


### OH_AVMetadataBuilder_Destroy()

```
AVMetadata_Result OH_AVMetadataBuilder_Destroy(OH_AVMetadataBuilder* builder)
```

**Description**

Destroys a metadata builder.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**: **builder** is a null pointer.


### OH_AVMetadataBuilder_GenerateAVMetadata()

```
AVMetadata_Result OH_AVMetadataBuilder_GenerateAVMetadata(OH_AVMetadataBuilder* builder, OH_AVMetadata** avMetadata)
```

**Description**

Generates an **OH_AVMetadata** object.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| avMetadata | Double pointer to the **OH_AVMetadata** object created.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_NO_MEMORY**: The memory is insufficient.

**AVMETADATA_ERROR_INVALID_PARAM**:

1. **builder** is a null pointer.

2. **avMetadata** is a null pointer.


### OH_AVMetadataBuilder_SetAlbum()

```
AVMetadata_Result OH_AVMetadataBuilder_SetAlbum(OH_AVMetadataBuilder* builder, const char* album)
```

**Description**

Sets an album name for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| album | Pointer to the album name.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:
1. **builder** is a null pointer.

2. **album** is a null pointer.


### OH_AVMetadataBuilder_SetArtist()

```
AVMetadata_Result OH_AVMetadataBuilder_SetArtist(OH_AVMetadataBuilder* builder, const char* artist)
```

**Description**

Sets an artist for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| artist | Pointer to the artist.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:
1. **builder** is a null pointer.

2. **artist** is a null pointer.


### OH_AVMetadataBuilder_SetAssetId()

```
AVMetadata_Result OH_AVMetadataBuilder_SetAssetId(OH_AVMetadataBuilder* builder, const char* assetId)
```

**Description**

Sets the ID of the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| assetId | Pointer to the asset ID.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:

1. **builder** is a null pointer.

2. **assetId** is a null pointer.


### OH_AVMetadataBuilder_SetAuthor()

```
AVMetadata_Result OH_AVMetadataBuilder_SetAuthor(OH_AVMetadataBuilder* builder, const char* author)
```

**Description**

Sets an author for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| author | Pointer to the author.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:

1. **builder** is a null pointer.

2. **author** is a null pointer.


### OH_AVMetadataBuilder_SetComposer()

```
AVMetadata_Result OH_AVMetadataBuilder_SetComposer(OH_AVMetadataBuilder* builder, const char* composer)
```

**Description**

Sets a composer for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| composer | Pointer to the composer.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:
1. **builder** is a null pointer.

2. **composer** is a null pointer.


### OH_AVMetadataBuilder_SetDescription()

```
AVMetadata_Result OH_AVMetadataBuilder_SetDescription(OH_AVMetadataBuilder* builder, const char* description)
```

**Description**

Sets a description for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| description | Pointer to the description.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:

1. **builder** is a null pointer.

2. **description** is a null pointer.


### OH_AVMetadataBuilder_SetDisplayTags()

```
AVMetadata_Result OH_AVMetadataBuilder_SetDisplayTags(OH_AVMetadataBuilder* builder, int32_t tags)
```

**Description**

Sets display tags for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| tags | Tags of the media asset displayed on the playback control page.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**: **builder** is a null pointer.


### OH_AVMetadataBuilder_SetDuration()

```
AVMetadata_Result OH_AVMetadataBuilder_SetDuration(OH_AVMetadataBuilder* builder, int64_t duration)
```

**Description**

Sets the playback duration for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| duration | Playback duration, in ms.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**: **builder** is a null pointer.


### OH_AVMetadataBuilder_SetLyric()

```
AVMetadata_Result OH_AVMetadataBuilder_SetLyric(OH_AVMetadataBuilder* builder, const char* lyric)
```

**Description**

Sets lyrics for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| lyric | Pointer to the lyrics in the lrc format.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:

1. **builder** is a null pointer.

2. **lyric** is a null pointer.


### OH_AVMetadataBuilder_SetMediaImageUri()

```
AVMetadata_Result OH_AVMetadataBuilder_SetMediaImageUri(OH_AVMetadataBuilder* builder, const char* mediaImageUri)
```

**Description**

Sets an image for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| mediaImageUri | Pointer to the URI of the image.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:

1. **builder** is a null pointer.

2. **mediaImageUri** is a null pointer.


### OH_AVMetadataBuilder_SetSkipIntervals()

```
AVMetadata_Result OH_AVMetadataBuilder_SetSkipIntervals(OH_AVMetadataBuilder* builder, AVMetadata_SkipIntervals intervals)
```

**Description**

Sets the skip intervals for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| intervals | Skip intervals.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:

1. **builder** is a null pointer.

2. **intervals** is invalid.


### OH_AVMetadataBuilder_SetSubtitle()

```
AVMetadata_Result OH_AVMetadataBuilder_SetSubtitle(OH_AVMetadataBuilder* builder, const char* subtitle)
```

**Description**

Sets a subtitle for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| subtitle | Pointer to the subtitle.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:

1. **builder** is a null pointer.

2. **subtitle** is a null pointer.


### OH_AVMetadataBuilder_SetTitle()

```
AVMetadata_Result OH_AVMetadataBuilder_SetTitle(OH_AVMetadataBuilder* builder, const char* title)
```

**Description**

Sets a title for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| title | Pointer to the title.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:
1. **builder** is a null pointer.

2. **title** is a null pointer.


### OH_AVMetadataBuilder_SetWriter()

```
AVMetadata_Result OH_AVMetadataBuilder_SetWriter(OH_AVMetadataBuilder* builder, const char* writer)
```

**Description**

Sets a writer for the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| builder | Pointer to an **OH_AVMetadataBuilder** instance.| 
| writer | Pointer to the writer.| 

**Returns**

Returns one of the following result codes defined in [AVMetadata_Result](#avmetadata_result):

**AVMETADATA_SUCCESS**: The function is executed successfully.

**AVMETADATA_ERROR_INVALID_PARAM**:
1. **builder** is a null pointer.

2. **writer** is a null pointer.


### OH_AVSession_Activate()

```
AVSession_ErrCode OH_AVSession_Activate(OH_AVSession* avsession)
```

**Description**

Activates a session.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_INVALID_PARAMETER**: **avsession** is a null pointer.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.


### OH_AVSession_Create()

```
AVSession_ErrCode OH_AVSession_Create(AVSession_Type sessionType, const char* sessionTag, const char* bundleName, const char* abilityName, OH_AVSession** avsession)
```

**Description**

Creates a session object.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| sessionType | Session type. For details about the available options, see [AVSession_Type](#avsession_type).| 
| sessionTag | Pointer to the session tag.| 
| bundleName | Pointer to the bundle name.| 
| abilityName | Pointer to the ability name.| 
| avsession | Double pointer to the session object created.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**link AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal or the session object already exists.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **sessionType** is invalid.

2. **sessionTag** is a null pointer.

3. **bundleName** is a null pointer.

4. **abilityName** is a null pointer.

5. **avsession** is a null pointer.


### OH_AVSession_Deactivate()

```
AVSession_ErrCode OH_AVSession_Deactivate(OH_AVSession* avsession)
```

**Description**

Deactivates a session.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_INVALID_PARAMETER**: **avsession** is a null pointer.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.


### OH_AVSession_Destroy()

```
AVSession_ErrCode OH_AVSession_Destroy(OH_AVSession* avsession)
```

**Description**

Destroys a session object.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_INVALID_PARAMETER**: **avsession** is a null pointer.


### OH_AVSession_GetSessionId()

```
AVSession_ErrCode OH_AVSession_GetSessionId(OH_AVSession* avsession, const char** sessionId)
```

**Description**

Obtains the session ID.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| sessionId | Double pointer to the session ID obtained.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal or an error occurs.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **sessionId** is a null pointer.


### OH_AVSession_GetSessionType()

```
AVSession_ErrCode OH_AVSession_GetSessionType(OH_AVSession* avsession, AVSession_Type* sessionType)
```

**Description**

Obtains the session type.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| sessionType | Pointer to the session type obtained.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal or an error occurs.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **sessionType** is a null pointer.


### OH_AVSession_RegisterCommandCallback()

```
AVSession_ErrCode OH_AVSession_RegisterCommandCallback(OH_AVSession* avsession, AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback, void* userData)
```

**Description**

Registers a callback for a common playback control command.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| command | Playback control command.| 
| callback | Callback to register, which is [OH_AVSessionCallback_OnCommand](#oh_avsessioncallback_oncommand).| 
| userData | Pointer to the application data passed through the callback functions.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_CODE_COMMAND_INVALID**: The playback control command is invalid.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_RegisterForwardCallback()

```
AVSession_ErrCode OH_AVSession_RegisterForwardCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnFastForward callback, void* userData)
```

**Description**

Registers a callback for the fast-forward operation.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to register, which issue [OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward).| 
| userData | Pointer to the application data passed through the callback functions.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_RegisterRewindCallback()

```
AVSession_ErrCode OH_AVSession_RegisterRewindCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnRewind callback, void* userData)
```

**Description**

Registers a callback for the rewind operation.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to register, which is [OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind).| 
| userData | Pointer to the application data passed through the callback functions.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_RegisterSeekCallback()

```
AVSession_ErrCode OH_AVSession_RegisterSeekCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnSeek callback, void* userData)
```

**Description**

Registers a callback for the seek operation.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to register, which is [OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek).| 
| userData | Pointer to the application data passed through the callback functions.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_RegisterSetLoopModeCallback()

```
AVSession_ErrCode OH_AVSession_RegisterSetLoopModeCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnSetLoopMode callback, void* userData)
```

**Description**

Registers a callback for the operation of setting the loop mode.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to register, which is [OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode).| 
| userData | Pointer to the application data passed through the callback functions.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_RegisterToggleFavoriteCallback()

```
AVSession_ErrCode OH_AVSession_RegisterToggleFavoriteCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnToggleFavorite callback, void* userData)
```

**Description**

Registers a callback for the operation of favoriting a media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to register, which is [OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite).| 
| userData | Pointer to the application data passed through the callback functions.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_SetAVMetadata()

```
AVSession_ErrCode OH_AVSession_SetAVMetadata(OH_AVSession* avsession, OH_AVMetadata* avmetadata)
```

**Description**

Sets media metadata.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| avmetadata | Pointer to the media metadata.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **avmetadata** is a null pointer.


### OH_AVSession_SetFavorite()

```
AVSession_ErrCode OH_AVSession_SetFavorite(OH_AVSession* avsession, bool favorite)
```

**Description**

Favorites or unfavorites the media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| favorite | Whether to favorite or unfavorite the media asset. The value **true** means to favorite the media asset, and **false** means the opposite.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**: **avsession** is a null pointer.


### OH_AVSession_SetLoopMode()

```
AVSession_ErrCode OH_AVSession_SetLoopMode(OH_AVSession* avsession, AVSession_LoopMode loopMode)
```

**Description**

Sets a loop mode.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| loopMode | Loop mode.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **loopMode** is invalid.


### OH_AVSession_SetPlaybackPosition()

```
AVSession_ErrCode OH_AVSession_SetPlaybackPosition(OH_AVSession* avsession, AVSession_PlaybackPosition* playbackPosition)
```

**Description**

Sets the playback position.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| playbackPosition | Pointer to the playback position.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **playbackPosition** is a null pointer.


### OH_AVSession_SetPlaybackState()

```
AVSession_ErrCode OH_AVSession_SetPlaybackState(OH_AVSession* avsession, AVSession_PlaybackState playbackState)
```

**Description**

Sets the playback state.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| playbackState | Playback state.| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **playbackState** is invalid.


### OH_AVSession_UnregisterCommandCallback()

```
AVSession_ErrCode OH_AVSession_UnregisterCommandCallback(OH_AVSession* avsession, AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback)
```

**Description**

Unregisters the callback for a common playback control command.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| command | Playback control command.| 
| callback | Callback to unregister, which is [OH_AVSessionCallback_OnCommand](#oh_avsessioncallback_oncommand).| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_CODE_COMMAND_INVALID**: The playback control command is invalid.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_UnregisterForwardCallback()

```
AVSession_ErrCode OH_AVSession_UnregisterForwardCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnFastForward callback)
```

**Description**

Unregisters the callback for the fast-forward operation.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to unregister, which issue [OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward).| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_UnregisterRewindCallback()

```
AVSession_ErrCode OH_AVSession_UnregisterRewindCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnRewind callback)
```

**Description**

Unregisters the callback for the rewind operation.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to unregister, which is [OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind).| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_UnregisterSeekCallback()

```
AVSession_ErrCode OH_AVSession_UnregisterSeekCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnSeek callback)
```

**Description**

Unregisters the callback for the seek operation.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to unregister, which is [OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek).| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_UnregisterSetLoopModeCallback()

```
AVSession_ErrCode OH_AVSession_UnregisterSetLoopModeCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnSetLoopMode callback)
```

**Description**

Unregisters the callback for the operation of setting the loop mode.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to unregister, which is [OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode).| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.


### OH_AVSession_UnregisterToggleFavoriteCallback()

```
AVSession_ErrCode OH_AVSession_UnregisterToggleFavoriteCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnToggleFavorite callback)
```

**Description**

Unregisters the callback for the operation of favoriting a media asset.

**Since**: 13

**Parameters**

| Name| Description| 
| -------- | -------- |
| avsession | Pointer to a session object.| 
| callback | Callback to unregister, which is [OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite).| 

**Returns**

Returns one of the following result codes defined in [AVSession_ErrCode](#avsession_errcode):

**AV_SESSION_ERR_SUCCESS**: The function is executed successfully.

**AV_SESSION_ERR_SERVICE_EXCEPTION**: The session service is abnormal.

**AV_SESSION_ERR_INVALID_PARAMETER**:

1. **avsession** is a null pointer.

2. **callback** is a null pointer.