# OHOS::AVSession::AVSessionController ## 概述 控制器对象,可获取会话的播放状态和会话元数据,远程发送控制命令到会话端也可以通过订阅监听会话段的更新事件。 ## 汇总 ### Public 成员函数 | 名称 | 描述 | | -------- | -------- | | [GetAVPlaybackState](#getavplaybackstate) ([AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md) &state)=0 | 获取音视频的播放状态。  | | [GetAVMetaData](#getavmetadata) ([AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md) &data)=0 | 获取会话元数据。  | | [SendAVKeyEvent](#sendavkeyevent) (const MMI::KeyEvent &keyEvent)=0 | 发送系统按键事件。  | | [GetLaunchAbility](#getlaunchability) (AbilityRuntime::WantAgent::WantAgent &ability)=0 | 获取Ability。  | | [GetValidCommands](#getvalidcommands) (std::vector< int32_t > &cmds)=0 | 获取媒体有效的指令。  | | [IsSessionActive](#issessionactive) (bool &isActive)=0 | 获取session的激活状态。  | | [SendControlCommand](#sendcontrolcommand) (const [AVControlCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md) &cmd)=0 | 发送媒体控制指令。  | | [RegisterCallback](#registercallback) (const std::shared_ptr< [AVControllerCallback](_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md) > &callback)=0 | 注册回调。  | | [SetMetaFilter](#setmetafilter) (const [AVMetaData::MetaMaskType](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md#metamasktype) &filter)=0 | 设置会话元数据过滤。  | | [SetPlaybackFilter](#setplaybackfilter) (const AVPlaybackState::PlaybackStateMaskType &filter)=0 | 设置音视频的播放状态回调过滤。  | | [Destroy](#destroy) ()=0 | 释放控制器。  | | [GetSessionId](#getsessionid) ()=0 | 获取sessionId。  | | [GetRealPlaybackPosition](#getrealplaybackposition) ()=0 | 获取播放的实时位置,第 x ms。  | | [IsDestroy](#isdestroy) ()=0 | 是否释放控制器。  | ## 成员函数说明 ### Destroy() ``` virtual int32_t OHOS::AVSession::AVSessionController::Destroy () ``` **描述:** 释放控制器。 **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 ### GetAVMetaData() ``` virtual int32_t OHOS::AVSession::AVSessionController::GetAVMetaData (AVMetaData & data) ``` **描述:** 获取会话元数据。 **参数:** | 名称 | 描述 | | -------- | -------- | | data | 会话元数据[AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md)。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 **参见:** [AVSession::SetAVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#setavmetadata) [AVSession::GetAVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#getavmetadata) ### GetAVPlaybackState() ``` virtual int32_t OHOS::AVSession::AVSessionController::GetAVPlaybackState (AVPlaybackState & state) ``` **描述:** 获取音视频的播放状态。 **参数:** | 名称 | 描述 | | -------- | -------- | | state | 音视频的播放状态[AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md)。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 **参见:** [AVSession::SetAVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#setavplaybackstate) [AVSession::GetAVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#getavplaybackstate) ### GetLaunchAbility() ``` virtual int32_t OHOS::AVSession::AVSessionController::GetLaunchAbility (AbilityRuntime::WantAgent::WantAgent & ability) ``` **描述:** 获取Ability。 **参数:** | 名称 | 描述 | | -------- | -------- | | ability | 类型为**AbilityRuntime::WantAgent::WantAgent**。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 **参见:** [AVSession::SetLaunchAbility](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#setlaunchability) ### GetRealPlaybackPosition() ``` virtual int64_t OHOS::AVSession::AVSessionController::GetRealPlaybackPosition () ``` **描述:** 获取播放的实时位置,第 x ms。 **返回:** 返回播放的实时位置,第x ms,经过校正过的时间,单位为ms。 ### GetSessionId() ``` virtual std::string OHOS::AVSession::AVSessionController::GetSessionId () ``` **描述:** 获取sessionId。 **返回:** 返回sessionId。 ### GetValidCommands() ``` virtual int32_t OHOS::AVSession::AVSessionController::GetValidCommands (std::vector< int32_t > & cmds) ``` **描述:** 获取媒体有效的指令。 **参数:** | 名称 | 描述 | | -------- | -------- | | cmds | 媒体有效的指令列表,范围为**SESSION_CMD_INVALID**到**SESSION_CMD_MAX**。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 **参见:** [SendControlCommand](#sendcontrolcommand) [AVSession::AddSupportCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#addsupportcommand) [AVSession::DeleteSupportCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#deletesupportcommand) ### IsDestroy() ``` virtual bool OHOS::AVSession::AVSessionController::IsDestroy () ``` **描述:** 是否释放控制器。 **返回:** true:释放;false:不释放。 ### IsSessionActive() ``` virtual int32_t OHOS::AVSession::AVSessionController::IsSessionActive (bool & isActive) ``` **描述:** 获取session的激活状态。 **参数:** | 名称 | 描述 | | -------- | -------- | | isActive | session是否激活。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 **参见:** [AVSession::Activate](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#activate) [AVSession::Deactivate](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#deactivate) [AVSession::IsActive](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#isactive) ### RegisterCallback() ``` virtual int32_t OHOS::AVSession::AVSessionController::RegisterCallback (const std::shared_ptr< AVControllerCallback > & callback) ``` **描述:** 注册回调。 **参数:** | 名称 | 描述 | | -------- | -------- | | callback | 需要注册的回调,类型为[AVControllerCallback](_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md)。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 ### SendAVKeyEvent() ``` virtual int32_t OHOS::AVSession::AVSessionController::SendAVKeyEvent (const MMI::KeyEvent & keyEvent) ``` **描述:** 发送系统按键事件。 **参数:** | 名称 | 描述 | | -------- | -------- | | keyEvent | 按键事件码,类型为**MMI::KeyEvent**。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 **参见:** [AVSessionManager::SendSystemAVKeyEvent](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md#sendsystemavkeyevent) ### SendControlCommand() ``` virtual int32_t OHOS::AVSession::AVSessionController::SendControlCommand (const AVControlCommand & cmd) ``` **描述:** 发送媒体控制指令。 **参数:** | 名称 | 描述 | | -------- | -------- | | cmd | 媒体控制指令,类型为[AVControlCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md)。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 **参见:** [GetValidCommands](#getvalidcommands) ### SetMetaFilter() ``` virtual int32_t OHOS::AVSession::AVSessionController::SetMetaFilter (const AVMetaData::MetaMaskType & filter) ``` **描述:** 设置会话元数据过滤。 **参数:** | 名称 | 描述 | | -------- | -------- | | filter | 会话元数据过滤,类型为[AVMetaData#MetaMaskType](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md#metamasktype)。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 ### SetPlaybackFilter() ``` virtual int32_t OHOS::AVSession::AVSessionController::SetPlaybackFilter (const AVPlaybackState::PlaybackStateMaskType & filter) ``` **描述:** 设置音视频的播放状态回调过滤。 **参数:** | 名称 | 描述 | | -------- | -------- | | filter | 音视频播放状态回调过滤,类型为**AVPlaybackState\#PlaybackStateMaskType**。  | **返回:** 成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。