1e41f4b71Sopenharmony_ci# native_avsession.h 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci## 概述 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci媒体会话定义,可用于设置元数据、播放状态信息等操作。 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci**库:** libohavsession.so 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci**引用文件:** <multimedia/av_session/native_avsession.h> 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.AVSession.Core 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci**起始版本:** 13 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci**相关模块:**[OHAVSession](_o_h_a_v_session.md) 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci## 汇总 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci### 结构体 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci| 名称 | 描述 | 25e41f4b71Sopenharmony_ci| -------- | -------- | 26e41f4b71Sopenharmony_ci| struct [AVSession_PlaybackPosition](_a_v_session___playback_position.md) | 媒体播放位置的相关属性。 | 27e41f4b71Sopenharmony_ci 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci### 类型定义 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci| 名称 | 描述 | 32e41f4b71Sopenharmony_ci| -------- | -------- | 33e41f4b71Sopenharmony_ci| typedef struct [AVSession_PlaybackPosition](_a_v_session___playback_position.md) [AVSession_PlaybackPosition](_o_h_a_v_session.md#avsession_playbackposition) | 媒体播放位置的相关属性。 | 34e41f4b71Sopenharmony_ci| typedef enum [AVSession_ControlCommand](_o_h_a_v_session.md#avsession_controlcommand) [AVSession_ControlCommand](_o_h_a_v_session.md#avsession_controlcommand) | 播控命令。 | 35e41f4b71Sopenharmony_ci| 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) | 通用的执行播控命令的回调。 | 36e41f4b71Sopenharmony_ci| 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) | 快进的回调。 | 37e41f4b71Sopenharmony_ci| 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) | 快退的回调。 | 38e41f4b71Sopenharmony_ci| 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) | 进度调节的回调。 | 39e41f4b71Sopenharmony_ci| 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) | 设置循环模式的回调。 | 40e41f4b71Sopenharmony_ci| 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) | 收藏的回调。 | 41e41f4b71Sopenharmony_ci| typedef struct [OH_AVSession](_o_h_a_v_session.md#oh_avsession) [OH_AVSession](_o_h_a_v_session.md#oh_avsession) | 播控会话对象定义。 | 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci### 枚举 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci| 名称 | 描述 | 47e41f4b71Sopenharmony_ci| -------- | -------- | 48e41f4b71Sopenharmony_ci| [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 } | 会话类型。 | 49e41f4b71Sopenharmony_ci| [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/>} | 媒体播放状态的相关属性。 | 50e41f4b71Sopenharmony_ci| [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/>} | 媒体播放循环模式。 | 51e41f4b71Sopenharmony_ci| [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/>} | 播控命令。 | 52e41f4b71Sopenharmony_ci| [AVSessionCallback_Result](_o_h_a_v_session.md#avsessioncallback_result) {<br/>AVSESSION_CALLBACK_RESULT_SUCCESS = 0,<br/>AVSESSION_CALLBACK_RESULT_FAILURE = -1 } | 回调执行的结果。 | 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci### 函数 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci| 名称 | 描述 | 58e41f4b71Sopenharmony_ci| -------- | -------- | 59e41f4b71Sopenharmony_ci| [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) | 创建会话对象。 | 60e41f4b71Sopenharmony_ci| [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) | 销毁会话对象。 | 61e41f4b71Sopenharmony_ci| [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) | 激活会话。 | 62e41f4b71Sopenharmony_ci| [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) | 取消激活媒体会话。 | 63e41f4b71Sopenharmony_ci| [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) | 获取会话类型。 | 64e41f4b71Sopenharmony_ci| [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) | 获取会话id。 | 65e41f4b71Sopenharmony_ci| [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) | 设置媒体元数据。 | 66e41f4b71Sopenharmony_ci| [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) | 设置播放状态。 | 67e41f4b71Sopenharmony_ci| [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) | 设置播放位置。 | 68e41f4b71Sopenharmony_ci| [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) | 设置收藏状态。 | 69e41f4b71Sopenharmony_ci| [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) | 设置循环模式。 | 70e41f4b71Sopenharmony_ci| [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) | 注册通用播控的回调。 | 71e41f4b71Sopenharmony_ci| [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) | 取消注册通用播控的回调。 | 72e41f4b71Sopenharmony_ci| [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) | 注册快进的回调。 | 73e41f4b71Sopenharmony_ci| [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) | 取消注册快进的回调。 | 74e41f4b71Sopenharmony_ci| [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) | 注册快退的回调。 | 75e41f4b71Sopenharmony_ci| [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) | 取消注册快退的回调。 | 76e41f4b71Sopenharmony_ci| [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) | 注册跳转的回调。 | 77e41f4b71Sopenharmony_ci| [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) | 取消注册跳转的回调。 | 78e41f4b71Sopenharmony_ci| [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) | 注册设置循环模式的回调。 | 79e41f4b71Sopenharmony_ci| [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) | 取消注册设置循环模式的回调。 | 80e41f4b71Sopenharmony_ci| [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) | 设置收藏的回调。 | 81e41f4b71Sopenharmony_ci| [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) | 取消设置收藏的回调。 | 82