# OHAVSession ## 概述 提供播控模块C接口定义。 开发者可使用OHAVSession,作为媒体会话提供方接入AVSession服务,对应的开发指南及样例可参考[媒体会话提供方](../../media/avsession/using-ohavsession-developer.md)。 **系统能力:** SystemCapability.Multimedia.AVSession.Core **起始版本:** 13 ## 汇总 ### 文件 | 名称 | 描述 | | -------- | -------- | | [native_avmetadata.h](native__avmetadata_8h.md) | 提供播控元数据的定义。 | | [native_avsession.h](native__avsession_8h.md) | 媒体会话定义,可用于设置元数据、播放状态信息等操作。 | | [native_avsession_errors.h](native__avsession__errors_8h.md) | 提供播控错误码的定义。 | ### 结构体 | 名称 | 描述 | | -------- | -------- | | struct [AVSession_PlaybackPosition](_a_v_session___playback_position.md) | 媒体播放位置的相关属性。 | ### 类型定义 | 名称 | 描述 | | -------- | -------- | | typedef struct OH_AVMetadataBuilderStruct [OH_AVMetadataBuilder](#oh_avmetadatabuilder) | 会话元数据构造器。 构造器用于构造会话元数据。 | | typedef struct OH_AVMetadataStruct [OH_AVMetadata](#oh_avmetadata) | 会话元数据。 资源设置的avmetadata的实例。 | | typedef struct [AVSession_PlaybackPosition](_a_v_session___playback_position.md) [AVSession_PlaybackPosition](#avsession_playbackposition) | 媒体播放位置的相关属性。 | | typedef enum [AVSession_ControlCommand](#avsession_controlcommand) [AVSession_ControlCommand](#avsession_controlcommand) | 播控命令。 | | typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnCommand](#oh_avsessioncallback_oncommand)) ([OH_AVSession](#oh_avsession) \*session, [AVSession_ControlCommand](#avsession_controlcommand) command, void \*userData) | 通用的执行播控命令的回调。 | | typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward)) ([OH_AVSession](#oh_avsession) \*session, uint32_t seekTime, void \*userData) | 快进的回调。 | | typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind)) ([OH_AVSession](#oh_avsession) \*session, uint32_t seekTime, void \*userData) | 快退的回调。 | | typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek)) ([OH_AVSession](#oh_avsession) \*session, uint64_t seekTime, void \*userData) | 进度调节的回调。 | | typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode)) ([OH_AVSession](#oh_avsession) \*session, [AVSession_LoopMode](#avsession_loopmode) curLoopMode, void \*userData) | 设置循环模式的回调。 | | typedef [AVSessionCallback_Result](#avsessioncallback_result)(\* [OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite)) ([OH_AVSession](#oh_avsession) \*session, const char \*assetId, void \*userData) | 收藏的回调。 | | typedef struct [OH_AVSession](#oh_avsession) [OH_AVSession](#oh_avsession) | 播控会话对象定义。 | ### 枚举 | 名称 | 描述 | | -------- | -------- | | [AVMetadata_Result](#avmetadata_result) {
AVMETADATA_SUCCESS = 0,
AVMETADATA_ERROR_INVALID_PARAM = 1,
AVMETADATA_ERROR_NO_MEMORY = 2 } | 元数据操作的错误码。 | | [AVMetadata_SkipIntervals](#avmetadata_skipintervals) {
SECONDS_10 = 10,
SECONDS_15 = 15,
SECONDS_30 = 30 } | 表示session支持的快进快退时间间隔。 | | [AVMetadata_DisplayTag](#avmetadata_displaytag) { AVSESSION_DISPLAYTAG_AUDIO_VIVID = 1 } | 应用媒体音源的特殊类型标识。 | | [AVSession_Type](#avsession_type) {
SESSION_TYPE_AUDIO = 0,
SESSION_TYPE_VIDEO = 1,
SESSION_TYPE_VOICE_CALL = 2,
SESSION_TYPE_VIDEO_CALL = 3 } | 会话类型。 | | [AVSession_PlaybackState](#avsession_playbackstate) {
PLAYBACK_STATE_INITIAL = 0,
PLAYBACK_STATE_PREPARING = 1,
PLAYBACK_STATE_PLAYING = 2,
PLAYBACK_STATE_PAUSED = 3,
PLAYBACK_STATE_FAST_FORWARDING = 4,
PLAYBACK_STATE_REWINDED = 5,
PLAYBACK_STATE_STOPPED = 6,
PLAYBACK_STATE_COMPLETED = 7,
PLAYBACK_STATE_RELEASED = 8,
PLAYBACK_STATE_ERROR = 9,
PLAYBACK_STATE_IDLE = 10,
PLAYBACK_STATE_BUFFERING = 11,
PLAYBACK_STATE_MAX = 12
} | 媒体播放状态的相关属性。 | | [AVSession_LoopMode](#avsession_loopmode) {
LOOP_MODE_SEQUENCE = 0,
LOOP_MODE_SINGLE = 1,
LOOP_MODE_LIST = 2,
LOOP_MODE_SHUFFLE = 3,
LOOP_MODE_CUSTOM = 4
} | 媒体播放循环模式。 | | [AVSession_ControlCommand](#avsession_controlcommand) {
CONTROL_CMD_INVALID = -1,
CONTROL_CMD_PLAY = 0,
CONTROL_CMD_PAUSE = 1,
CONTROL_CMD_STOP = 2,
CONTROL_CMD_PLAY_NEXT = 3,
CONTROL_CMD_PLAY_PREVIOUS = 4
} | 播控命令。 | | [AVSessionCallback_Result](#avsessioncallback_result) {
AVSESSION_CALLBACK_RESULT_SUCCESS = 0,
AVSESSION_CALLBACK_RESULT_FAILURE = -1 } | 回调执行的结果。 | | [AVSession_ErrCode](#avsession_errcode) {
AV_SESSION_ERR_SUCCESS = 0,
AV_SESSION_ERR_INVALID_PARAMETER = 401,
AV_SESSION_ERR_SERVICE_EXCEPTION = 6600101,
AV_SESSION_ERR_CODE_SESSION_NOT_EXIST = 6600102,
AV_SESSION_ERR_CODE_COMMAND_INVALID = 6600105,
AV_SESSION_ERR_CODE_SESSION_INACTIVE = 6600106,
AV_SESSION_ERR_CODE_MESSAGE_OVERLOAD = 6600107
} | 播控错误码。 | ### 函数 | 名称 | 描述 | | -------- | -------- | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_Create](#oh_avmetadatabuilder_create) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*\*builder) | 创建一个元数据构造器。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_Destroy](#oh_avmetadatabuilder_destroy) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder) | 销毁元数据构造器。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetAssetId](#oh_avmetadatabuilder_setassetid) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*assetId) | 设置当前媒体资源id。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetTitle](#oh_avmetadatabuilder_settitle) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*title) | 设置资源标题。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetArtist](#oh_avmetadatabuilder_setartist) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*artist) | 设置资源所属的艺术家。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetAuthor](#oh_avmetadatabuilder_setauthor) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*author) | 设置资源的作者。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetAlbum](#oh_avmetadatabuilder_setalbum) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*album) | 设置资源专辑名称。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetWriter](#oh_avmetadatabuilder_setwriter) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*writer) | 设置资源词作者。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetComposer](#oh_avmetadatabuilder_setcomposer) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*composer) | 设置资源作曲者。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetDuration](#oh_avmetadatabuilder_setduration) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, int64_t duration) | 设置资源播放时长。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetMediaImageUri](#oh_avmetadatabuilder_setmediaimageuri) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*mediaImageUri) | 设置媒体图片数据。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetSubtitle](#oh_avmetadatabuilder_setsubtitle) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*subtitle) | 设置副标题。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetDescription](#oh_avmetadatabuilder_setdescription) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*description) | 设置媒体描述信息。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetLyric](#oh_avmetadatabuilder_setlyric) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, const char \*lyric) | 设置歌词。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetSkipIntervals](#oh_avmetadatabuilder_setskipintervals) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, [AVMetadata_SkipIntervals](#avmetadata_skipintervals) intervals) | 设置资源的跳转的间隔时间。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_SetDisplayTags](#oh_avmetadatabuilder_setdisplaytags) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, int32_t tags) | 设置媒体资源的金标类型。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadataBuilder_GenerateAVMetadata](#oh_avmetadatabuilder_generateavmetadata) ([OH_AVMetadataBuilder](#oh_avmetadatabuilder) \*builder, [OH_AVMetadata](#oh_avmetadata) \*\*avMetadata) | 生成媒体元数据对象。 | | [AVMetadata_Result](#avmetadata_result) [OH_AVMetadata_Destroy](#oh_avmetadata_destroy) ([OH_AVMetadata](#oh_avmetadata) \*avMetadata) | 释放媒体元数据对象。 | | [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) | 创建会话对象。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_Destroy](#oh_avsession_destroy) ([OH_AVSession](#oh_avsession) \*avsession) | 销毁会话对象。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_Activate](#oh_avsession_activate) ([OH_AVSession](#oh_avsession) \*avsession) | 激活会话。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_Deactivate](#oh_avsession_deactivate) ([OH_AVSession](#oh_avsession) \*avsession) | 取消激活媒体会话。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_GetSessionType](#oh_avsession_getsessiontype) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_Type](#avsession_type) \*sessionType) | 获取会话类型。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_GetSessionId](#oh_avsession_getsessionid) ([OH_AVSession](#oh_avsession) \*avsession, const char \*\*sessionId) | 获取会话id。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetAVMetadata](#oh_avsession_setavmetadata) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVMetadata](#oh_avmetadata) \*avmetadata) | 设置媒体元数据。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetPlaybackState](#oh_avsession_setplaybackstate) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_PlaybackState](#avsession_playbackstate) playbackState) | 设置播放状态。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetPlaybackPosition](#oh_avsession_setplaybackposition) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_PlaybackPosition](_a_v_session___playback_position.md) \*playbackPosition) | 设置播放位置。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetFavorite](#oh_avsession_setfavorite) ([OH_AVSession](#oh_avsession) \*avsession, bool favorite) | 设置收藏状态。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_SetLoopMode](#oh_avsession_setloopmode) ([OH_AVSession](#oh_avsession) \*avsession, [AVSession_LoopMode](#avsession_loopmode) loopMode) | 设置循环模式。 | | [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) | 注册通用播控的回调。 | | [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) | 取消注册通用播控的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterForwardCallback](#oh_avsession_registerforwardcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward) callback, void \*userData) | 注册快进的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterForwardCallback](#oh_avsession_unregisterforwardcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward) callback) | 取消注册快进的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterRewindCallback](#oh_avsession_registerrewindcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind) callback, void \*userData) | 注册快退的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterRewindCallback](#oh_avsession_unregisterrewindcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind) callback) | 取消注册快退的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterSeekCallback](#oh_avsession_registerseekcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek) callback, void \*userData) | 注册跳转的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterSeekCallback](#oh_avsession_unregisterseekcallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek) callback) | 取消注册跳转的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterSetLoopModeCallback](#oh_avsession_registersetloopmodecallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode) callback, void \*userData) | 注册设置循环模式的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterSetLoopModeCallback](#oh_avsession_unregistersetloopmodecallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode) callback) | 取消注册设置循环模式的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_RegisterToggleFavoriteCallback](#oh_avsession_registertogglefavoritecallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite) callback, void \*userData) | 设置收藏的回调。 | | [AVSession_ErrCode](#avsession_errcode) [OH_AVSession_UnregisterToggleFavoriteCallback](#oh_avsession_unregistertogglefavoritecallback) ([OH_AVSession](#oh_avsession) \*avsession, [OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite) callback) | 取消设置收藏的回调。 | ## 类型定义说明 ### AVSession_ControlCommand ``` typedef enum AVSession_ControlCommand AVSession_ControlCommand ``` **描述** 播控命令。 **起始版本:** 13 ### AVSession_PlaybackPosition ``` typedef struct AVSession_PlaybackPosition AVSession_PlaybackPosition ``` **描述** 媒体播放位置的相关属性。 **起始版本:** 13 ### OH_AVMetadata ``` typedef struct OH_AVMetadataStruct OH_AVMetadata ``` **描述** 会话元数据。 资源设置的avmetadata的实例。 **起始版本:** 13 ### OH_AVMetadataBuilder ``` typedef struct OH_AVMetadataBuilderStruct OH_AVMetadataBuilder ``` **描述** 会话元数据构造器。 构造器用于构造会话元数据。 **起始版本:** 13 ### OH_AVSession ``` typedef struct OH_AVSession OH_AVSession ``` **描述** 播控会话对象定义。 可以用OH_AVSession_Create创建一个会话对象。 **起始版本:** 13 ### OH_AVSessionCallback_OnCommand ``` typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnCommand)(OH_AVSession* session, AVSession_ControlCommand command, void* userData) ``` **描述** 通用的执行播控命令的回调。 **起始版本:** 13 ### OH_AVSessionCallback_OnFastForward ``` typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnFastForward)(OH_AVSession* session, uint32_t seekTime, void* userData) ``` **描述** 快进的回调。 **起始版本:** 13 ### OH_AVSessionCallback_OnRewind ``` typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnRewind)(OH_AVSession* session, uint32_t seekTime, void* userData) ``` **描述** 快退的回调。 **起始版本:** 13 ### OH_AVSessionCallback_OnSeek ``` typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnSeek)(OH_AVSession* session, uint64_t seekTime, void* userData) ``` **描述** 进度调节的回调。 **起始版本:** 13 ### OH_AVSessionCallback_OnSetLoopMode ``` typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnSetLoopMode)(OH_AVSession* session, AVSession_LoopMode curLoopMode, void* userData) ``` **描述** 设置循环模式的回调。 **起始版本:** 13 ### OH_AVSessionCallback_OnToggleFavorite ``` typedef AVSessionCallback_Result (*OH_AVSessionCallback_OnToggleFavorite)(OH_AVSession* session, const char* assetId, void* userData) ``` **描述** 收藏的回调。 **起始版本:** 13 ## 枚举类型说明 ### AVMetadata_DisplayTag ``` enum AVMetadata_DisplayTag ``` **描述** 应用媒体音源的特殊类型标识。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | AVSESSION_DISPLAYTAG_AUDIO_VIVID | AUDIO VIVID标识。 | ### AVMetadata_Result ``` enum AVMetadata_Result ``` **描述** 元数据操作的错误码。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | AVMETADATA_SUCCESS | 执行成功。 | | AVMETADATA_ERROR_INVALID_PARAM | 入参错误。 | | AVMETADATA_ERROR_NO_MEMORY | 内存不足。 | ### AVMetadata_SkipIntervals ``` enum AVMetadata_SkipIntervals ``` **描述** 表示session支持的快进快退时间间隔。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | SECONDS_10 | 时间为10秒。 | | SECONDS_15 | 时间为15秒。 | | SECONDS_30 | 时间为30秒。 | ### AVSession_ControlCommand ``` enum AVSession_ControlCommand ``` **描述** 播控命令。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | CONTROL_CMD_INVALID | 无效控制命令。 | | CONTROL_CMD_PLAY | 播放命令。 | | CONTROL_CMD_PAUSE | 暂停命令。 | | CONTROL_CMD_STOP | 停止命令。 | | CONTROL_CMD_PLAY_NEXT | 播放下一首命令。 | | CONTROL_CMD_PLAY_PREVIOUS | 播放上一首命令。 | ### AVSession_ErrCode ``` enum AVSession_ErrCode ``` **描述** 播控错误码。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | AV_SESSION_ERR_SUCCESS | 操作成功。 | | AV_SESSION_ERR_INVALID_PARAMETER | 参数检查失败。 | | AV_SESSION_ERR_SERVICE_EXCEPTION | 会话服务端异常。 | | AV_SESSION_ERR_CODE_SESSION_NOT_EXIST | 会话不存在。 | | AV_SESSION_ERR_CODE_COMMAND_INVALID | 无效会话命令。 | | AV_SESSION_ERR_CODE_SESSION_INACTIVE | 会话未激活。 | | AV_SESSION_ERR_CODE_MESSAGE_OVERLOAD | 命令&消息过载。 | ### AVSession_LoopMode ``` enum AVSession_LoopMode ``` **描述** 媒体播放循环模式。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | LOOP_MODE_SEQUENCE | 顺序播放。 | | LOOP_MODE_SINGLE | 单曲循环。 | | LOOP_MODE_LIST | 表单循环。 | | LOOP_MODE_SHUFFLE | 随机播放。 | | LOOP_MODE_CUSTOM | 自定义播放。 | ### AVSession_PlaybackState ``` enum AVSession_PlaybackState ``` **描述** 媒体播放状态的相关属性。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | PLAYBACK_STATE_INITIAL | 初始状态。 | | PLAYBACK_STATE_PREPARING | 准备状态。 | | PLAYBACK_STATE_PLAYING | 正在播放。 | | PLAYBACK_STATE_PAUSED | 暂停。 | | PLAYBACK_STATE_FAST_FORWARDING | 快进。 | | PLAYBACK_STATE_REWINDED | 快退。 | | PLAYBACK_STATE_STOPPED | 停止。 | | PLAYBACK_STATE_COMPLETED | 播放完成。 | | PLAYBACK_STATE_RELEASED | 释放。 | | PLAYBACK_STATE_ERROR | 错误。 | | PLAYBACK_STATE_IDLE | 空闲。 | | PLAYBACK_STATE_BUFFERING | 缓冲。 | | PLAYBACK_STATE_MAX | 最大状态。(当state为12时,返回错误码401) | ### AVSession_Type ``` enum AVSession_Type ``` **描述** 会话类型。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | SESSION_TYPE_AUDIO | 音频。 | | SESSION_TYPE_VIDEO | 视频。 | | SESSION_TYPE_VOICE_CALL | 音频通话。 | | SESSION_TYPE_VIDEO_CALL | 视频通话。 | ### AVSessionCallback_Result ``` enum AVSessionCallback_Result ``` **描述** 回调执行的结果。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | AVSESSION_CALLBACK_RESULT_SUCCESS | 执行成功。 | | AVSESSION_CALLBACK_RESULT_FAILURE | 执行失败。 | ## 函数说明 ### OH_AVMetadata_Destroy() ``` AVMetadata_Result OH_AVMetadata_Destroy(OH_AVMetadata* avMetadata) ``` **描述** 释放媒体元数据对象。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avMetadata | 指向元数据的指针对象。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM:参数avMetadata为nullptr。 ### OH_AVMetadataBuilder_Create() ``` AVMetadata_Result OH_AVMetadataBuilder_Create(OH_AVMetadataBuilder** builder) ``` **描述** 创建一个元数据构造器。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 该引用指向创建的构造器的结果。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM:参数builder为nullptr。 AVMETADATA_ERROR_NO_MEMORY:没有内存来分配新实例。 ### OH_AVMetadataBuilder_Destroy() ``` AVMetadata_Result OH_AVMetadataBuilder_Destroy(OH_AVMetadataBuilder* builder) ``` **描述** 销毁元数据构造器。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM:参数builder为nullptr。 ### OH_AVMetadataBuilder_GenerateAVMetadata() ``` AVMetadata_Result OH_AVMetadataBuilder_GenerateAVMetadata(OH_AVMetadataBuilder* builder, OH_AVMetadata** avMetadata) ``` **描述** 生成媒体元数据对象。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | avMetadata | 指向元数据的指针对象。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_NO_MEMORY:内存不足。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数avMetadata为nullptr。 ### OH_AVMetadataBuilder_SetAlbum() ``` AVMetadata_Result OH_AVMetadataBuilder_SetAlbum(OH_AVMetadataBuilder* builder, const char* album) ``` **描述** 设置资源专辑名称。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | album | 专辑名。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数album为nullptr。 ### OH_AVMetadataBuilder_SetArtist() ``` AVMetadata_Result OH_AVMetadataBuilder_SetArtist(OH_AVMetadataBuilder* builder, const char* artist) ``` **描述** 设置资源所属的艺术家。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | artist | 艺术家。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数artist为nullptr。 ### OH_AVMetadataBuilder_SetAssetId() ``` AVMetadata_Result OH_AVMetadataBuilder_SetAssetId(OH_AVMetadataBuilder* builder, const char* assetId) ``` **描述** 设置当前媒体资源id。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | assetId | 资源id。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数assetId为nullptr。 ### OH_AVMetadataBuilder_SetAuthor() ``` AVMetadata_Result OH_AVMetadataBuilder_SetAuthor(OH_AVMetadataBuilder* builder, const char* author) ``` **描述** 设置资源的作者。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | author | 作者。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数author为nullptr。 ### OH_AVMetadataBuilder_SetComposer() ``` AVMetadata_Result OH_AVMetadataBuilder_SetComposer(OH_AVMetadataBuilder* builder, const char* composer) ``` **描述** 设置资源作曲者。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | composer | 作曲者。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数composer为nullptr。 ### OH_AVMetadataBuilder_SetDescription() ``` AVMetadata_Result OH_AVMetadataBuilder_SetDescription(OH_AVMetadataBuilder* builder, const char* description) ``` **描述** 设置媒体描述信息。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | description | 媒体描述信息。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数description为nullptr。 ### OH_AVMetadataBuilder_SetDisplayTags() ``` AVMetadata_Result OH_AVMetadataBuilder_SetDisplayTags(OH_AVMetadataBuilder* builder, int32_t tags) ``` **描述** 设置媒体资源的金标类型。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | tags | 用于显示在播控的媒体资源的金标类型。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM:参数builder为nullptr。 ### OH_AVMetadataBuilder_SetDuration() ``` AVMetadata_Result OH_AVMetadataBuilder_SetDuration(OH_AVMetadataBuilder* builder, int64_t duration) ``` **描述** 设置资源播放时长。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | duration | 资源播放时长,以ms为单位。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM:参数builder为nullptr。 ### OH_AVMetadataBuilder_SetLyric() ``` AVMetadata_Result OH_AVMetadataBuilder_SetLyric(OH_AVMetadataBuilder* builder, const char* lyric) ``` **描述** 设置歌词。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | lyric | lrc格式的歌词内容。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数lyric为nullptr。 ### OH_AVMetadataBuilder_SetMediaImageUri() ``` AVMetadata_Result OH_AVMetadataBuilder_SetMediaImageUri(OH_AVMetadataBuilder* builder, const char* mediaImageUri) ``` **描述** 设置媒体图片数据。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | mediaImageUri | 网络资源图片数据地址。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数mediaImageUri为nullptr。 ### OH_AVMetadataBuilder_SetSkipIntervals() ``` AVMetadata_Result OH_AVMetadataBuilder_SetSkipIntervals(OH_AVMetadataBuilder* builder, AVMetadata_SkipIntervals intervals) ``` **描述** 设置资源的跳转的间隔时间。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | intervals | 跳转的时间间隔。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数intervals为无效。 ### OH_AVMetadataBuilder_SetSubtitle() ``` AVMetadata_Result OH_AVMetadataBuilder_SetSubtitle(OH_AVMetadataBuilder* builder, const char* subtitle) ``` **描述** 设置副标题。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | subtitle | The subtitle of resource. | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数subtitle为nullptr。 ### OH_AVMetadataBuilder_SetTitle() ``` AVMetadata_Result OH_AVMetadataBuilder_SetTitle(OH_AVMetadataBuilder* builder, const char* title) ``` **描述** 设置资源标题。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | title | 标题。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数title为nullptr。 ### OH_AVMetadataBuilder_SetWriter() ``` AVMetadata_Result OH_AVMetadataBuilder_SetWriter(OH_AVMetadataBuilder* builder, const char* writer) ``` **描述** 设置资源词作者。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | builder | 指向元数据构造器的实例。 | | writer | 词作者。 | **返回:** 函数返回值[AVMetadata_Result](#avmetadata_result): AVMETADATA_SUCCESS:函数执行成功。 AVMETADATA_ERROR_INVALID_PARAM: 1. 参数builder为nullptr。 2. 参数writer为nullptr。 ### OH_AVSession_Activate() ``` AVSession_ErrCode OH_AVSession_Activate(OH_AVSession* avsession) ``` **描述** 激活会话。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_INVALID_PARAMETER:参数avsession为nullptr。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 ### OH_AVSession_Create() ``` AVSession_ErrCode OH_AVSession_Create(AVSession_Type sessionType, const char* sessionTag, const char* bundleName, const char* abilityName, OH_AVSession** avsession) ``` **描述** 创建会话对象。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | sessionType | 会话类型[AVSession_Type](#avsession_type)。 | | sessionTag | 会话标签。 | | bundleName | 创建会话的包名。 | | abilityName | 创建会话的ability名。 | | avsession | 返回的媒体会话对象。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常或session重复创建。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数sessionType无效。 2. 参数sessionTag为nullptr。 3. 参数bundleName为nullptr。 4. 参数abilityName为nullptr。 5. 参数avsession为nullptr。 ### OH_AVSession_Deactivate() ``` AVSession_ErrCode OH_AVSession_Deactivate(OH_AVSession* avsession) ``` **描述** 取消激活媒体会话。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_INVALID_PARAMETER:参数avsession为nullptr。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 ### OH_AVSession_Destroy() ``` AVSession_ErrCode OH_AVSession_Destroy(OH_AVSession* avsession) ``` **描述** 销毁会话对象。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_INVALID_PARAMETER:参数avsession为nullptr。 ### OH_AVSession_GetSessionId() ``` AVSession_ErrCode OH_AVSession_GetSessionId(OH_AVSession* avsession, const char** sessionId) ``` **描述** 获取会话id。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | sessionId | 返回的会话类型id。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常,获取session Id错误。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数sessionId为nullptr。 ### OH_AVSession_GetSessionType() ``` AVSession_ErrCode OH_AVSession_GetSessionType(OH_AVSession* avsession, AVSession_Type* sessionType) ``` **描述** 获取会话类型。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | sessionType | 返回的会话类型。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常,获取session type错误。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数sessionType为nullptr。 ### OH_AVSession_RegisterCommandCallback() ``` AVSession_ErrCode OH_AVSession_RegisterCommandCallback(OH_AVSession* avsession, AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback, void* userData) ``` **描述** 注册通用播控的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | command | 播控的控制命令。 | | callback | 控制命令的回调[OH_AVSessionCallback_OnCommand](#oh_avsessioncallback_oncommand)。 | | userData | 指向通过回调函数传递的应用数据指针。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_CODE_COMMAND_INVALID:控制命令无效。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_RegisterForwardCallback() ``` AVSession_ErrCode OH_AVSession_RegisterForwardCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnFastForward callback, void* userData) ``` **描述** 注册快进的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 快进命令的回调[OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward)。 | | userData | 指向通过回调函数传递的应用数据指针。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_RegisterRewindCallback() ``` AVSession_ErrCode OH_AVSession_RegisterRewindCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnRewind callback, void* userData) ``` **描述** 注册快退的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 快退命令的回调[OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind)。 | | userData | 指向通过回调函数传递的应用数据指针。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_RegisterSeekCallback() ``` AVSession_ErrCode OH_AVSession_RegisterSeekCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnSeek callback, void* userData) ``` **描述** 注册跳转的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 跳转命令的回调[OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek)。 | | userData | 指向通过回调函数传递的应用数据指针。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_RegisterSetLoopModeCallback() ``` AVSession_ErrCode OH_AVSession_RegisterSetLoopModeCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnSetLoopMode callback, void* userData) ``` **描述** 注册设置循环模式的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 设置循环模式命令的回调[OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode)。 | | userData | 指向通过回调函数传递的应用数据指针。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_RegisterToggleFavoriteCallback() ``` AVSession_ErrCode OH_AVSession_RegisterToggleFavoriteCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnToggleFavorite callback, void* userData) ``` **描述** 设置收藏的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 设置收藏命令的回调[OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite)。 | | userData | 指向通过回调函数传递的应用数据指针。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_SetAVMetadata() ``` AVSession_ErrCode OH_AVSession_SetAVMetadata(OH_AVSession* avsession, OH_AVMetadata* avmetadata) ``` **描述** 设置媒体元数据。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | avmetadata | 设置媒体元数据信息。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数avmetadata为nullptr。 ### OH_AVSession_SetFavorite() ``` AVSession_ErrCode OH_AVSession_SetFavorite(OH_AVSession* avsession, bool favorite) ``` **描述** 设置收藏状态。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | favorite | 收藏状态,true表示收藏,false表示取消收藏。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER:参数avsession为nullptr。 ### OH_AVSession_SetLoopMode() ``` AVSession_ErrCode OH_AVSession_SetLoopMode(OH_AVSession* avsession, AVSession_LoopMode loopMode) ``` **描述** 设置循环模式。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | loopMode | 循环模式。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数loopMode无效。 ### OH_AVSession_SetPlaybackPosition() ``` AVSession_ErrCode OH_AVSession_SetPlaybackPosition(OH_AVSession* avsession, AVSession_PlaybackPosition* playbackPosition) ``` **描述** 设置播放位置。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | playbackPosition | 播放位置对象。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数playbackPosition为nullptr。 ### OH_AVSession_SetPlaybackState() ``` AVSession_ErrCode OH_AVSession_SetPlaybackState(OH_AVSession* avsession, AVSession_PlaybackState playbackState) ``` **描述** 设置播放状态。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | playbackState | 播放状态。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数playbackState无效。 ### OH_AVSession_UnregisterCommandCallback() ``` AVSession_ErrCode OH_AVSession_UnregisterCommandCallback(OH_AVSession* avsession, AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback) ``` **描述** 取消注册通用播控的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | command | 播控的控制命令。 | | callback | 控制命令的回调[OH_AVSessionCallback_OnCommand](#oh_avsessioncallback_oncommand)。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_CODE_COMMAND_INVALID:控制命令无效。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_UnregisterForwardCallback() ``` AVSession_ErrCode OH_AVSession_UnregisterForwardCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnFastForward callback) ``` **描述** 取消注册快进的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 快进命令的回调[OH_AVSessionCallback_OnFastForward](#oh_avsessioncallback_onfastforward)。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_UnregisterRewindCallback() ``` AVSession_ErrCode OH_AVSession_UnregisterRewindCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnRewind callback) ``` **描述** 取消注册快退的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 快退命令的回调[OH_AVSessionCallback_OnRewind](#oh_avsessioncallback_onrewind)。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_UnregisterSeekCallback() ``` AVSession_ErrCode OH_AVSession_UnregisterSeekCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnSeek callback) ``` **描述** 取消注册跳转的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 跳转命令的回调[OH_AVSessionCallback_OnSeek](#oh_avsessioncallback_onseek)。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_UnregisterSetLoopModeCallback() ``` AVSession_ErrCode OH_AVSession_UnregisterSetLoopModeCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnSetLoopMode callback) ``` **描述** 取消注册设置循环模式的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 设置循环模式命令的回调[OH_AVSessionCallback_OnSetLoopMode](#oh_avsessioncallback_onsetloopmode)。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。 ### OH_AVSession_UnregisterToggleFavoriteCallback() ``` AVSession_ErrCode OH_AVSession_UnregisterToggleFavoriteCallback(OH_AVSession* avsession, OH_AVSessionCallback_OnToggleFavorite callback) ``` **描述** 取消设置收藏的回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | avsession | 媒体会话对象。 | | callback | 设置收藏命令的回调[OH_AVSessionCallback_OnToggleFavorite](#oh_avsessioncallback_ontogglefavorite)。 | **返回:** 函数返回值[AVSession_ErrCode](#avsession_errcode): AV_SESSION_ERR_SUCCESS:函数执行成功。 AV_SESSION_ERR_SERVICE_EXCEPTION:会话服务异常。 AV_SESSION_ERR_INVALID_PARAMETER: 1. 参数avsession为nullptr。 2. 参数callback为nullptr。