From 203027d5646882dcc00fcee885a608579c1c2d2a Mon Sep 17 00:00:00 2001 From: guo-chunting Date: Thu, 1 Sep 2022 15:23:58 +0800 Subject: [PATCH 1/6] nativeSdk Signed-off-by: guo-chunting --- .../native_sdk/media/av_session/av_session.h | 24 +-- .../media/av_session/avcontrol_command.h | 42 +++-- .../native_sdk/media/av_session/avmeta_data.h | 60 +++++-- .../media/av_session/avplayback_state.h | 24 ++- .../media/av_session/avsession_controller.h | 31 ++-- .../media/av_session/avsession_descriptor.h | 47 +++++- .../media/av_session/avsession_errors.h | 15 +- .../media/av_session/avsession_info.h | 53 +++++- .../media/av_session/avsession_manager.h | 44 ++++- .../media/av_session/avsession_pixel_map.h | 152 ++++++++++++++++++ 10 files changed, 426 insertions(+), 66 deletions(-) create mode 100644 zh-cn/native_sdk/media/av_session/avsession_pixel_map.h diff --git a/zh-cn/native_sdk/media/av_session/av_session.h b/zh-cn/native_sdk/media/av_session/av_session.h index 099820a1..e7b538de 100644 --- a/zh-cn/native_sdk/media/av_session/av_session.h +++ b/zh-cn/native_sdk/media/av_session/av_session.h @@ -80,7 +80,7 @@ public: * @brief 获取会话元数据。 * * @param meta 用于保存会话元数据的{@link AVMetaData}对象。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see SetAVMetaData * @since 9 @@ -92,7 +92,7 @@ public: * @brief 设置会话元数据。 * * @param meta 用于修改会话元数据的{@link AVMetaData}对象。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see GetAVMetaData * @since 9 @@ -104,7 +104,7 @@ public: * @brief 获取音视频的播放状态。 * * @param state 用于保存播放状态的{@link AVPlaybackState}对象。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see SetAVPlaybackState * @since 9 @@ -116,7 +116,7 @@ public: * @brief 设置音视频的播放状态。 * * @param state 用于修改播放状态的{@link AVPlaybackState}对象。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see GetAVPlaybackState * @since 9 @@ -128,7 +128,7 @@ public: * @brief 设置一个WantAgent用于启动会话的Ability。 * * @param ability 具体的应用对应的能力,类型为{@link AbilityRuntime::WantAgent::WantAgent}。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see AVSessionController#GetLaunchAbility * @since 9 @@ -149,7 +149,7 @@ public: * @brief 注册会话回调。 * * @param callback 用于注册会话回调的{@link AVSessionCallback}对象。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -161,7 +161,7 @@ public: * * 激活成功后,会话才可以接收控制指令。 * - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see Deactivate * @see IsActive @@ -175,7 +175,7 @@ public: * * 去激活成功后,表示会话还不能接收控制指令。 * - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see Activate * @see IsActive @@ -187,7 +187,7 @@ public: /** * @brief 获取会话是否被激活。 * - * @return 如果是激活状态,则返回true; 否则返回false。 + * @return 如果是激活状态,则返回true;否则返回false。 * @see Activate * @see Deactivate * @since 9 @@ -200,7 +200,7 @@ public: * * 如果应用要创建一个新会话,必须要销毁之前的会话,否则会创建失败。 * - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -211,7 +211,7 @@ public: * @brief 添加支持的控制命令。 * * @param cmd 待添加的控制命令,范围为{@link #SESSION_CMD_INVALID}到{@link #SESSION_CMD_MAX}。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -222,7 +222,7 @@ public: * @brief 删除支持的控制命令。 * * @param cmd 待删除的控制命令,范围为{@link #SESSION_CMD_INVALID}到{@link #SESSION_CMD_MAX}。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 diff --git a/zh-cn/native_sdk/media/av_session/avcontrol_command.h b/zh-cn/native_sdk/media/av_session/avcontrol_command.h index 5c8d903f..7701f930 100644 --- a/zh-cn/native_sdk/media/av_session/avcontrol_command.h +++ b/zh-cn/native_sdk/media/av_session/avcontrol_command.h @@ -101,7 +101,7 @@ public: * @brief IPC通信数据序列化。 * * @param parcel 保存序列化值的对象{@link Parcel}。 - * @return 成功返回true; 否则,返回false。 + * @return 成功返回true;否则,返回false。 * @see Unmarshalling * @since 9 * @version 1.0 @@ -112,7 +112,7 @@ public: * @brief 判断当前指令是否在有效范围内。 * * @return 如果cmd_在有效范围内,范围在{@link #SESSION_CMD_INVALID}到@{link #SESSION_CMD_MAX}之间, - * 返回true; 否则,返回false。 + * 返回true;否则,返回false。 * @since 9 * @version 1.0 */ @@ -122,7 +122,7 @@ public: * @brief 设置操作指令。 * * @param cmd 操作指令,范围在{@link #SESSION_CMD_INVALID}到{@link #SESSION_CMD_MAX}之间。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see GetCommand * @since 9 @@ -144,7 +144,7 @@ public: * @brief 设置媒体播放倍数。 * * @param speed 媒体播放倍数,需大于0。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see GetSpeed * @since 9 @@ -156,7 +156,7 @@ public: * @brief 获取媒体播放倍数 * * @param speed 媒体播放倍数,返回值。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see SetSpeed * @since 9 @@ -168,7 +168,7 @@ public: * @brief 设置媒体跳播时间。 * * @param time 媒体资源的位置,从媒体资源开头开始计算,单位为ms。取值需大于等于0。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see GetSeekTime * @since 9 @@ -180,7 +180,7 @@ public: * @brief 获取媒体跳播时间。 * * @param time 媒体资源的位置,从媒体资源开头开始计算,单位为ms。取值需大于等于0。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see SetSeekTime * @since 9 @@ -194,7 +194,7 @@ public: * @param mode 媒体循环模式, * 取值在 {@link AVPlaybackState#LOOP_MODE_SEQUENCE}到{@link AVPlaybackState#LOOP_MODE_SHUFFLE}之间。 * @see GetLoopMode - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -207,7 +207,7 @@ public: * @param mode 保存媒体循环模式。 * 取值在 {@link AVPlaybackState#LOOP_MODE_SEQUENCE}到{@link AVPlaybackState#LOOP_MODE_SHUFFLE}之间。 * @see SetLoopMode - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -219,7 +219,7 @@ public: * * @param assetId 媒体id,不可为空。 * @see GetAssetId - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -231,13 +231,33 @@ public: * * @param assetId 保存媒体id。 * @see SetAssetId - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 */ int32_t GetAssetId(std::string &assetId) const; + /** + * @brief 命令数组,用于分布式业务,判断是否支持某个命令。 + * + * @since 9 + * @version 1.0 + */ + const static inline std::vector localCapability { + SESSION_CMD_PLAY, + SESSION_CMD_PAUSE, + SESSION_CMD_STOP, + SESSION_CMD_PLAY_NEXT, + SESSION_CMD_PLAY_PREVIOUS, + SESSION_CMD_FAST_FORWARD, + SESSION_CMD_REWIND, + SESSION_CMD_SEEK, + SESSION_CMD_SET_SPEED, + SESSION_CMD_SET_LOOP_MODE, + SESSION_CMD_TOGGLE_FAVORITE, + }; + private: /** 操作指令{@link #SESSION_CMD_INVALID} */ int32_t cmd_ = SESSION_CMD_INVALID; diff --git a/zh-cn/native_sdk/media/av_session/avmeta_data.h b/zh-cn/native_sdk/media/av_session/avmeta_data.h index 926b194b..a1a61528 100644 --- a/zh-cn/native_sdk/media/av_session/avmeta_data.h +++ b/zh-cn/native_sdk/media/av_session/avmeta_data.h @@ -43,7 +43,11 @@ #include #include #include "parcel.h" -#include "pixel_map.h" +#include "avsession_pixel_map.h" + +#if !defined(WINDOWS_PLATFORM) and !defined(MAC_PLATFORM) and !defined(IOS_PLATFORM) +#include +#endif namespace OHOS::AVSession { /** @@ -121,12 +125,19 @@ public: * @version 1.0 */ ~AVMetaData() override = default; + { +#if !defined(WINDOWS_PLATFORM) and !defined(MAC_PLATFORM) and !defined(IOS_PLATFORM) +#if defined(__BIONIC__) + mallopt(M_PURGE, 0); +#endif +#endif + } /** * @brief 实现会话元数据进程间传递的反序列化。 * * @param data 序列化对象{@link Parcel}。 - * @return 如果反序列化成功,返回AVMetaData类型指针; 失败则返回nullptr。 + * @return 如果反序列化成功,返回AVMetaData类型指针;失败则返回nullptr。 * @see Marshalling * @since 9 * @version 1.0 @@ -137,7 +148,7 @@ public: * @brief 实现会话元数据进程间传递的序列化。 * * @param data 保存序列化值的对象{@link Parcel}。 - * @return 如果序列化成功,则返回true; 如果操作失败,则返回false。 + * @return 如果序列化成功,则返回true;如果操作失败,则返回false。 * @see Unmarshalling * @since 9 * @version 1.0 @@ -307,22 +318,22 @@ public: /** * @brief 设置媒体图片。 * - * @param mediaImage 媒体图片{@link Media::PixelMap}。 + * @param mediaImage 媒体图片{@link AVSessionPixelMap}。 * @see GetMediaImage * @since 9 * @version 1.0 */ - void SetMediaImage(const std::shared_ptr& mediaImage); + void SetMediaImage(const std::shared_ptr& mediaImage); /** * @brief 获取媒体图片。 * - * @return 返回媒体图片{@link Media::PixelMap}。 + * @return 返回媒体图片{@link AVSessionPixelMap}。 * @see SetMediaImage * @since 9 * @version 1.0 */ - std::shared_ptr GetMediaImage() const; + std::shared_ptr GetMediaImage() const; /** * @brief 设置媒体图片url。 @@ -486,7 +497,7 @@ public: * * @param mask metadata掩码{@link MetaMaskType}。 * @param metaOut metadata已拷贝成功的出参{@link AVMetaData}。 - * @return 成功返回true;失败则返回false。 + * @return 成功返回true;失败则返回false。 * @since 9 * @version 1.0 */ @@ -496,7 +507,7 @@ public: * @brief 根据metaIn元掩码的设置位从metaIn复制metadata项。 * * @param metaIn:会话元数据将要拷贝的入参{@link AVMetaData}。 - * @return 成功返回true;失败则返回false。 + * @return 成功返回true;失败则返回false。 * @since 9 * @version 1.0 */ @@ -505,11 +516,36 @@ public: /** * @brief 会话元数据有效性判断。 * - * @return 有效返回true;无效则返回false。 + * @return 有效返回true;无效则返回false。 * @since 9 * @version 1.0 */ bool IsValid() const; + + /** + * @brief 会话元数据数组,用于分布式业务,设置会话属性。 + * + * @since 9 + * @version 1.0 + */ + const static inline std::vector localCapability { + META_KEY_ASSET_ID, + META_KEY_TITLE, + META_KEY_ARTIST, + META_KEY_AUTHOR, + META_KEY_ALBUM, + META_KEY_WRITER, + META_KEY_COMPOSER, + META_KEY_DURATION, + META_KEY_MEDIA_IMAGE, + META_KEY_MEDIA_IMAGE_URI, + META_KEY_PUBLISH_DATE, + META_KEY_SUBTITLE, + META_KEY_DESCRIPTION, + META_KEY_LYRIC, + META_KEY_PREVIOUS_ASSET_ID, + META_KEY_NEXT_ASSET_ID, + }; private: /** 用于记录会话元数据掩码{@link MetaMaskType} */ @@ -530,8 +566,8 @@ private: std::string composer_ = ""; /** 媒体时长 */ int64_t duration_ = 0; - /** 媒体影像{@link Media::PixelMap} */ - std::shared_ptr mediaImage_ = nullptr; + /** 媒体影像{@link AVSessionPixelMap} */ + std::shared_ptr mediaImage_ = nullptr; /** 媒体影像路径 */ std::string mediaImageUri_ = ""; /** 曲目发布日期,时间戳,单位为ms */ diff --git a/zh-cn/native_sdk/media/av_session/avplayback_state.h b/zh-cn/native_sdk/media/av_session/avplayback_state.h index fa43483c..cd925d88 100644 --- a/zh-cn/native_sdk/media/av_session/avplayback_state.h +++ b/zh-cn/native_sdk/media/av_session/avplayback_state.h @@ -52,7 +52,6 @@ public: * @brief 描述播放状态的枚举。 * */ - enum { /** 初始状态*/ PLAYBACK_STATE_INITIAL = 0, @@ -146,7 +145,7 @@ public: * 将AVPlaybackState类型的信息,序列化为{@link Parcel}类型的信息,用来进行IPC通信。 * * @param parcel 保存序列化值的对象{@link Parcel}。 - * @return 成功返回true;失败返回false。 + * @return 成功返回true;失败返回false。 * @see Unmarshalling * @since 9 * @version 1.0 @@ -156,7 +155,7 @@ public: /** * @brief 验证当前信息的有效性。 * - * @return 有效返回true;无效则返回false。 + * @return 有效返回true;无效则返回false。 * @since 9 * @version 1.0 */ @@ -299,7 +298,7 @@ public: * * @param mask 输入的掩码@{@link PlaybackStateMaskType}。 * @param out 输出的音视频的播放状态{@link AVPlaybackState}。 - * @return 如果有至少一个播放界面信息被拷贝,返回true;如果一个播放界面信息都没有被拷贝,返回false。 + * @return 如果有至少一个播放界面信息被拷贝,返回true;如果一个播放界面信息都没有被拷贝,返回false。 * @see CopyFrom * @since 9 * @version 1.0 @@ -310,13 +309,28 @@ public: * @brief 根据当前对象的mask_掩码,将输入的AVPlaybackState类型的信息复制到当前对象。 * * @param in AVPlaybackState类型的引用{@link AVPlaybackState}。 - * @return 如果有至少一个播放界面信息被拷贝,返回true;如果一个播放界面信息都没有被拷贝,返回false。 + * @return 如果有至少一个播放界面信息被拷贝,返回true;如果一个播放界面信息都没有被拷贝,返回false。 * @see CopyToByMask * @see GetMask * @since 9 * @version 1.0 */ bool CopyFrom(const AVPlaybackState& in); + + /** + * @brief 内联函数指针数组{@link AVPlaybackState},用于分布式业务,设置播放界面信息。 + * + * @since 9 + * @version 1.0 + */ + const static inline std::vector localCapability { + PLAYBACK_KEY_STATE, + PLAYBACK_KEY_SPEED, + PLAYBACK_KEY_POSITION, + PLAYBACK_KEY_BUFFERED_TIME, + PLAYBACK_KEY_LOOP_MODE, + PLAYBACK_KEY_IS_FAVORITE, + }; private: diff --git a/zh-cn/native_sdk/media/av_session/avsession_controller.h b/zh-cn/native_sdk/media/av_session/avsession_controller.h index 9ac26e6f..9bc99369 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_controller.h +++ b/zh-cn/native_sdk/media/av_session/avsession_controller.h @@ -59,7 +59,7 @@ public: * @brief 获取音视频的播放状态。 * * @param state 音视频的播放状态{@link AVPlaybackState}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see AVSession#SetAVPlaybackState * @see AVSession#GetAVPlaybackState @@ -72,7 +72,7 @@ public: * @brief 获取会话元数据。 * * @param data 会话元数据{@link AVMetaData}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see AVSession#SetAVMetaData * @see AVSession#GetAVMetaData @@ -85,7 +85,7 @@ public: * @brief 发送系统事件。 * * @param keyEvent 按键事件码,类型为{@link MMI::KeyEvent}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see AVSessionManager#SendSystemAVKeyEvent * @since 9 @@ -97,7 +97,7 @@ public: * @brief 获取Ability。 * * @param ability 类型为{@link AbilityRuntime::WantAgent::WantAgent}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see AVSession#SetLaunchAbility * @since 9 @@ -109,7 +109,7 @@ public: * @brief 获取媒体有效的指令。 * * @param cmds 媒体有效的指令列表,范围为{@link #SESSION_CMD_INVALID}到{@link #SESSION_CMD_MAX}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see SendControlCommand * @see AVSession#AddSupportCommand @@ -123,7 +123,7 @@ public: * @brief 获取session的激活状态。 * * @param isActive session是否激活,类型为{@link AVSessionController}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see AVSession#Activate * @see AVSession#Deactivate @@ -137,7 +137,7 @@ public: * @brief 发送媒体控制指令。 * * @param cmd 媒体控制指令,类型为{@link AVControlCommand}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see GetValidCommands * @since 9 @@ -149,7 +149,7 @@ public: * @brief 注册回调。 * * @param callback 需要注册的回调,类型为{@link AVControllerCallback}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -160,7 +160,7 @@ public: * @brief 设置会话元数据过滤。 * * @param filter 会话元数据过滤,类型为{@link AVMetaData#MetaMaskType}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -171,7 +171,7 @@ public: * @brief 设置音视频的播放状态回调过滤。 * * @param filter 音视频播放状态回调过滤,类型为{@link AVPlaybackState#PlaybackStateMaskType}。 - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -181,7 +181,7 @@ public: /** * @brief 释放控制器。 * - * @return 成功返回{@link #AVSESSION_SUCCESS}; 失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -205,6 +205,15 @@ public: * @version 1.0 */ virtual int64_t GetRealPlaybackPosition() = 0; + + /** + * @brief 是否释放控制器。 + * + * @return true:释放;false:不释放。 + * @since 9 + * @version 1.0 + */ + virtual bool IsDestroy() = 0; virtual ~AVSessionController() = default; }; diff --git a/zh-cn/native_sdk/media/av_session/avsession_descriptor.h b/zh-cn/native_sdk/media/av_session/avsession_descriptor.h index a8b4f3d0..fe1f156f 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_descriptor.h +++ b/zh-cn/native_sdk/media/av_session/avsession_descriptor.h @@ -68,7 +68,7 @@ struct AVSessionDescriptor { * @brief 将会话相关描述信息写进包里。 * * @param out 写入的会话相关描述信息对象{@link Parcel}。 - * @return 成功返回true; 失败则返回false。 + * @return 成功返回true;失败则返回false。 * @see ReadFromParcel * @since 9 * @version 1.0 @@ -78,13 +78,12 @@ struct AVSessionDescriptor { * @brief 对会话相关描述信息进行解包。 * * @param in 读出的会话相关描述信息对象{@link Parcel}。 - * @return 成功返回true; 失败则返回false。 + * @return 成功返回true;失败则返回false。 * @see WriteToParcel * @since 9 * @version 1.0 */ bool ReadFromParcel(Parcel &in); - /** 会话的id */ std::string sessionId_; /** 会话的类型 */ @@ -101,9 +100,47 @@ struct AVSessionDescriptor { bool isActive_ {}; /** 会话是否是最新的会话 */ bool isTopSession_ {}; + /** 是否是第三方应用 */ + bool isThirdPartyApp_ {}; /** 分布式设备相关信息 */ OutputDeviceInfo outputDeviceInfo_; }; -} // namespace OHOS::AVSession -/** @} */ + +/** + * @brief 会话基础信息描述。 + * + * @since 9 + * @version 1.0 + */ +struct AVSessionBasicInfo { + /** 设备名称 */ + std::string deviceName_ {}; + /** 设备id */ + std::string deviceId_ {}; + /** 供应商id */ + std::string vendorId_ {}; + /** 设备类型 */ + std::string deviceType_ {}; + /** 系统版本 */ + std::string systemVersion_ {}; + /** 会话版本 */ + int32_t sessionVersion_ {}; + /** 备注信息*/ + std::vector reserve_ {}; + /** 特征信息 */ + std::vector feature_ {}; + /** 会话元数据 */ + std::vector metaDataCap_ {}; + /** 播放状态 */ + std::vector playBackStateCap_ {}; + /** 系统控制命令 */ + std::vector controlCommandCap_ {}; + /** 扩展能力 */ + std::vector extendCapability_ {}; + /** 系统时间 */ + int32_t systemTime_ {}; + /** 扩展信息 */ + std::vector extend_ {}; +}; +} // namespace OHOS::AVSession #endif // OHOS_AVSESSION_DESCRIPTOR_H \ No newline at end of file diff --git a/zh-cn/native_sdk/media/av_session/avsession_errors.h b/zh-cn/native_sdk/media/av_session/avsession_errors.h index e9f66ff0..d5ee0108 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_errors.h +++ b/zh-cn/native_sdk/media/av_session/avsession_errors.h @@ -48,7 +48,6 @@ constexpr int32_t AVSESSION_ERROR = -1; constexpr int32_t AVSESSION_SUCCESS = 0; /** avsession错误码的基定义 */ constexpr int32_t AVSESSION_ERROR_BASE = 1000; - /** 无可用内存 */ constexpr int32_t ERR_NO_MEMORY = -(AVSESSION_ERROR_BASE + 1); /** 传递的参数无效 */ @@ -73,6 +72,20 @@ constexpr int32_t ERR_COMMAND_NOT_SUPPORT = -(AVSESSION_ERROR_BASE + 10); constexpr int32_t ERR_CONTROLLER_NOT_EXIST = -(AVSESSION_ERROR_BASE + 11); /** 无权限 */ constexpr int32_t ERR_NO_PERMISSION = -(AVSESSION_ERROR_BASE + 12); +/** 会话未激活 */ +constexpr int32_t ERR_SESSION_DEACTIVE = -(AVSESSION_ERROR_BASE + 13); +/** 控制器存在 */ +constexpr int32_t ERR_CONTROLLER_IS_EXIST = -(AVSESSION_ERROR_BASE + 14); +/** 元能力正在运行 */ +constexpr int32_t ERR_START_ABILITY_IS_RUNNING = -(AVSESSION_ERROR_BASE + 15); +/** 元能力启动超失败 */ +constexpr int32_t ERR_ABILITY_NOT_AVALIABLE = -(AVSESSION_ERROR_BASE + 16); +/** 元能力启动超时 */ +constexpr int32_t ERR_START_ABILITY_TIMEOUT = -(AVSESSION_ERROR_BASE + 17); +/** 文件数据读取失败 */ +constexpr int32_t ERR_FILE_UNEXPECTED_DATA = -(AVSESSION_ERROR_BASE + 18); +/** RPC发送数据失败 */ +constexpr int32_t ERR_RPC_SEND_REQUEST = -(AVSESSION_ERROR_BASE + 19); } // namespace OHOS::AVSession /** @} */ #endif // OHOS_AVSESSION_ERRORS_H \ No newline at end of file diff --git a/zh-cn/native_sdk/media/av_session/avsession_info.h b/zh-cn/native_sdk/media/av_session/avsession_info.h index 32d4e213..fe5ea453 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_info.h +++ b/zh-cn/native_sdk/media/av_session/avsession_info.h @@ -83,7 +83,7 @@ public: * @since 9 * @version 1.0 */ - virtual void OnTopSessionChanged(const AVSessionDescriptor& descriptor) = 0; + virtual void OnTopSessionChange(const AVSessionDescriptor& descriptor) = 0; /** * @brief SessionListener的默认的析构函数。 @@ -204,6 +204,14 @@ public: */ virtual void OnMediaKeyEvent(const MMI::KeyEvent& keyEvent) = 0; + /** + * @brief 注册会话输出设备更改。 + * + * @param outputDeviceInfo 输出设备信息 {@link OutputDeviceInfo}。 + * @since 9 + * @version 1.0 + */ + virtual void OnOutputDeviceChange(const OutputDeviceInfo& outputDeviceInfo) = 0; /** * @brief AVSessionCallback的默认的析构函数。 * @@ -267,6 +275,15 @@ public: virtual void OnValidCommandChange(const std::vector &cmds) = 0; /** + * @brief 注册会话输出设备更改。 + * + * @param outputDeviceInfo 输出设备信息 {@link OutputDeviceInfo}。 + * @since 9 + * @version 1.0 + */ + virtual void OnOutputDeviceChange(const OutputDeviceInfo &outputDeviceInfo) = 0; + + /** * @brief AVControllerCallback的默认的析构函数。 * * @since 9 @@ -274,6 +291,40 @@ public: */ virtual ~AVControllerCallback() = default; }; + +/** + * @brief 会话令牌的信息。 + * + * @since 9 + * @version 1.0 + */ +struct SessionToken { + /** 会话id */ + std::string sessionId; + /** 会话的进id */ + pid_t pid; + /** 用户id */ + uid_t uid; +}; + +/** + * @brief 会话元数据处理标识 + * + * @since 9 + * @version 1.0 + */ +enum SessionDataCategory { + /** 会话类别无效 */ + SESSION_DATA_CATEGORY_INVALID = -1, + /** 会话元数据 */ + SESSION_DATA_META, + /** 会话播放状态 */ + SESSION_DATA_PLAYBACK_STATE, + /** 会话控制命令 */ + SESSION_DATA_CONTROL_COMMAND, + /** 会话类别最大值 */ + SESSION_DATA_CATEGORY_MAX, +}; } // namespace OHOS::AVSession /** @} */ #endif // OHOS_AVSESSION_INFO_H \ No newline at end of file diff --git a/zh-cn/native_sdk/media/av_session/avsession_manager.h b/zh-cn/native_sdk/media/av_session/avsession_manager.h index c35dbc05..686b2817 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_manager.h +++ b/zh-cn/native_sdk/media/av_session/avsession_manager.h @@ -42,6 +42,7 @@ #include #include +#include "audio_system_manager.h" #include "av_session.h" #include "avsession_controller.h" #include "avsession_info.h" @@ -102,7 +103,7 @@ public: * * @param sessionId AVSession的会话标签。 * @param descriptor AVSession的会话类型,类型为{@link AVSessionDescriptor}。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -113,17 +114,20 @@ public: * @brief 创建AVSession会话控制器的接口方法。 * * @param sessionld AVSession的会话ID。 - * @return 返回已创建的会话控制器对象的智能指针{@link AVSessionController}。 + * @param controller 会话控制器实例,类型为{@link AVSessionController}。 + * @return 返回成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * 例如{@link #ERR_SESSION_NOT_EXIST},{@link #ERR_ABILITY_NOT_AVALIABLE}等等。 * @since 9 * @version 1.0 */ - virtual std::shared_ptr CreateController(const std::string& sessionId) = 0; + virtual int32_t CreateController(const std::string& sessionId, + std::shared_ptr& controller) = 0; /** * @brief 注册AVSession会话监听器的接口方法。 * * @param listener 会话监听器的智能指针,类型为{@link SessionListener}。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -134,7 +138,7 @@ public: * @brief 注册AVSession服务器的死亡回调的接口方法。 * * @param callback 死亡回调的方法,类型为{@link DeathCallback}。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see UnregisterServiceDeathCallback * @since 9 @@ -145,7 +149,7 @@ public: /** * @brief 注销AVSession服务器的死亡回调的接口方法。 * - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see RegisterServiceDeathCallback * @since 9 @@ -158,7 +162,7 @@ public: * @brief 发送系统按键事件的接口方法。 * * @param keyEvent 按键事件码,类型为{@link MMI::KeyEvent}。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 @@ -169,12 +173,36 @@ public: * @brief 发送系统控制命令的接口方法。 * * @param command 系统控制命令{@link AVControlCommand}。 - * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @since 9 * @version 1.0 */ virtual int32_t SendSystemControlCommand(const AVControlCommand& command) = 0; + + /** + * @brief 将音频投射到远程设备或投射回本地设备。 + * + * @param token 用于判断会议的合法性。 + * @param descriptors 指定要转换的音频设备。 + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * 例如{@link #AVSESSION_ERROR},{@link #ERR_SERVICE_NOT_EXIST}等等。 + * @since 9 + * @version 1.0 + */ + virtual int32_t CastAudio(const SessionToken& token, + const std::vector& descriptors) = 0; + + /** + * @brief 将此设备的所有媒体音频传输到远程设备。 + * + * @param descriptors 指定要转换的音频设备。 + * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, + * 例如{@link #AVSESSION_ERROR},{@link #ERR_SERVICE_NOT_EXIST}等等。 + * @since 9 + * @version 1.0 + */ + virtual int32_t CastAudioForAll(const std::vector& descriptors) = 0; }; } // namespace OHOS::AVSession /** @} */ diff --git a/zh-cn/native_sdk/media/av_session/avsession_pixel_map.h b/zh-cn/native_sdk/media/av_session/avsession_pixel_map.h new file mode 100644 index 00000000..56ac9080 --- /dev/null +++ b/zh-cn/native_sdk/media/av_session/avsession_pixel_map.h @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef OHOS_AVSESSION_PIXEL_MAP_H +#define OHOS_AVSESSION_PIXEL_MAP_H + +/** + * @addtogroup avsession + * @{ + * + * @brief 音视频媒体会话,提供系统内媒体的统一控制能力。 + * + * 功能包括媒体会话,媒体会话管理,媒体会话控制。 + * + * @syscap SystemCapability.Multimedia.AVSession.Core + * @since 9 + * @version 1.0 + */ + +/** + * @file avsession_pixel_map.h + * + * @brief 读取、设置图片及图片信息。 + * + * @since 9 + * @version 1.0 + */ + +#include +#include "parcel.h" + +#if !defined(WINDOWS_PLATFORM) and !defined(MAC_PLATFORM) and !defined(IOS_PLATFORM) +#include +#endif + +namespace OHOS::AVSession { + +/** 初始化容器大小为160KB */ +constexpr size_t DEFAULT_BUFFER_SIZE = 160 * 1024; + +/** + * @brief 读取、设置图片及图片信息。 + * + */ +class AVSessionPixelMap : public Parcelable { +public: + AVSessionPixelMap() = default; + ~AVSessionPixelMap() + { +#if !defined(WINDOWS_PLATFORM) and !defined(MAC_PLATFORM) and !defined(IOS_PLATFORM) +#if defined(__BIONIC__) + mallopt(M_PURGE, 0); +#endif +#endif + } + + /** + * @brief 实现图片及图片信息的序列化。 + * + * @param data 保存序列化值的对象{@link Parcel}。 + * @return 如果序列化成功,则返回true;失败则返回false。 + * @see Unmarshalling + * @since 9 + * @version 1.0 + */ + bool Marshalling(Parcel &data) const override; + + /** + * @brief 实现图片及图片信息的反序列化。 + * + * @param data 保存反序列化值的对象{@link Parcel}。 + * @return 如果反序列化成功,则返回true;失败则返回false。 + * @see Marshalling + * @since 9 + * @version 1.0 + */ + static AVSessionPixelMap *Unmarshalling(Parcel &data); + + /** + * @brief 获取图片数据。 + * + * @return 返回图片数据。 + * @see SetPixelData + * @since 9 + * @version 1.0 + */ + std::vector GetPixelData() const + { + return data_; + } + + /** + * @brief 设置图片数据。 + * + * @param data 图片数据。 + * @see GetPixelData + * @since 9 + * @version 1.0 + */ + void SetPixelData(const std::vector &data) + { + data_.clear(); + data_ = data; + } + + /** + * @brief 获取图片信息。 + * + * @return 返回图片信息。 + * @see SetImageInfo + * @since 9 + * @version 1.0 + */ + std::vector GetImageInfo() const + { + return imageInfo_; + } + + /** + * @brief 设置图片信息。 + * + * @param imageInfo 图片信息。 + * @see GetImageInfo + * @since 9 + * @version 1.0 + */ + void SetImageInfo(const std::vector &imageInfo) + { + imageInfo_.clear(); + imageInfo_ = imageInfo; + } + +private: + /** 图片数据 */ + std::vector data_ = std::vector(DEFAULT_BUFFER_SIZE); + /** 图片信息 */ + std::vector imageInfo_; +}; +} // namespace OHOS::AVSession +/** @} */ +#endif // OHOS_AVSESSION_PIXEL_MAP_H \ No newline at end of file -- Gitee From df240b1c2f7b617b03b4fb946e887bdc12ef728e Mon Sep 17 00:00:00 2001 From: guo-chunting Date: Thu, 1 Sep 2022 20:01:56 +0800 Subject: [PATCH 2/6] nativeSdk Signed-off-by: guo-chunting --- zh-cn/native_sdk/media/av_session/avsession_descriptor.h | 4 ++-- zh-cn/native_sdk/media/av_session/avsession_errors.h | 2 ++ zh-cn/native_sdk/media/av_session/avsession_info.h | 6 +++--- zh-cn/native_sdk/media/av_session/avsession_manager.h | 6 +++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/zh-cn/native_sdk/media/av_session/avsession_descriptor.h b/zh-cn/native_sdk/media/av_session/avsession_descriptor.h index fe1f156f..6be34047 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_descriptor.h +++ b/zh-cn/native_sdk/media/av_session/avsession_descriptor.h @@ -101,7 +101,7 @@ struct AVSessionDescriptor { /** 会话是否是最新的会话 */ bool isTopSession_ {}; /** 是否是第三方应用 */ - bool isThirdPartyApp_ {}; + bool isThirdPartyApp_ {}; /** 分布式设备相关信息 */ OutputDeviceInfo outputDeviceInfo_; }; @@ -131,7 +131,7 @@ struct AVSessionBasicInfo { std::vector feature_ {}; /** 会话元数据 */ std::vector metaDataCap_ {}; - /** 播放状态 */ + /** 支持播放状态数组 */ std::vector playBackStateCap_ {}; /** 系统控制命令 */ std::vector controlCommandCap_ {}; diff --git a/zh-cn/native_sdk/media/av_session/avsession_errors.h b/zh-cn/native_sdk/media/av_session/avsession_errors.h index d5ee0108..0c1b40ee 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_errors.h +++ b/zh-cn/native_sdk/media/av_session/avsession_errors.h @@ -86,6 +86,8 @@ constexpr int32_t ERR_START_ABILITY_TIMEOUT = -(AVSESSION_ERROR_BASE + 17); constexpr int32_t ERR_FILE_UNEXPECTED_DATA = -(AVSESSION_ERROR_BASE + 18); /** RPC发送数据失败 */ constexpr int32_t ERR_RPC_SEND_REQUEST = -(AVSESSION_ERROR_BASE + 19); +/** 指令发送次数超过最大值 */ +constexpr int32_t ERR_COMMAND_SEND_EXCEED_MAX = -(AVSESSION_ERROR_BASE + 20); } // namespace OHOS::AVSession /** @} */ #endif // OHOS_AVSESSION_ERRORS_H \ No newline at end of file diff --git a/zh-cn/native_sdk/media/av_session/avsession_info.h b/zh-cn/native_sdk/media/av_session/avsession_info.h index fe5ea453..083ef081 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_info.h +++ b/zh-cn/native_sdk/media/av_session/avsession_info.h @@ -301,7 +301,7 @@ public: struct SessionToken { /** 会话id */ std::string sessionId; - /** 会话的进id */ + /** 会话的进程id */ pid_t pid; /** 用户id */ uid_t uid; @@ -314,7 +314,7 @@ struct SessionToken { * @version 1.0 */ enum SessionDataCategory { - /** 会话类别无效 */ + /** 无效类型,内部用于类型是否有效 */ SESSION_DATA_CATEGORY_INVALID = -1, /** 会话元数据 */ SESSION_DATA_META, @@ -322,7 +322,7 @@ enum SessionDataCategory { SESSION_DATA_PLAYBACK_STATE, /** 会话控制命令 */ SESSION_DATA_CONTROL_COMMAND, - /** 会话类别最大值 */ + /** 会话数据类型的数量 */ SESSION_DATA_CATEGORY_MAX, }; } // namespace OHOS::AVSession diff --git a/zh-cn/native_sdk/media/av_session/avsession_manager.h b/zh-cn/native_sdk/media/av_session/avsession_manager.h index 686b2817..4593e3c8 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_manager.h +++ b/zh-cn/native_sdk/media/av_session/avsession_manager.h @@ -181,9 +181,9 @@ public: virtual int32_t SendSystemControlCommand(const AVControlCommand& command) = 0; /** - * @brief 将音频投射到远程设备或投射回本地设备。 + * @brief 将媒体会话投射到远程设备或投射回本地设备。 * - * @param token 用于判断会议的合法性。 + * @param token 需要投播的会话令牌。 * @param descriptors 指定要转换的音频设备。 * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #AVSESSION_ERROR},{@link #ERR_SERVICE_NOT_EXIST}等等。 @@ -194,7 +194,7 @@ public: const std::vector& descriptors) = 0; /** - * @brief 将此设备的所有媒体音频传输到远程设备。 + * @brief 将此设备的所有媒体会话投播到远程设备。 * * @param descriptors 指定要转换的音频设备。 * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, -- Gitee From 977a464d1606a85bd5b2762d9c03bdb8a0470c3e Mon Sep 17 00:00:00 2001 From: guo-chunting Date: Thu, 1 Sep 2022 20:04:32 +0800 Subject: [PATCH 3/6] nativeSdk Signed-off-by: guo-chunting --- zh-cn/native_sdk/media/av_session/avsession_descriptor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/native_sdk/media/av_session/avsession_descriptor.h b/zh-cn/native_sdk/media/av_session/avsession_descriptor.h index 6be34047..22d7a363 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_descriptor.h +++ b/zh-cn/native_sdk/media/av_session/avsession_descriptor.h @@ -100,7 +100,7 @@ struct AVSessionDescriptor { bool isActive_ {}; /** 会话是否是最新的会话 */ bool isTopSession_ {}; - /** 是否是第三方应用 */ + /** 是否是第三方应用 */ bool isThirdPartyApp_ {}; /** 分布式设备相关信息 */ OutputDeviceInfo outputDeviceInfo_; -- Gitee From 40e894bd7a74e77a558789d8e8877f4d9506b720 Mon Sep 17 00:00:00 2001 From: guo-chunting Date: Thu, 1 Sep 2022 20:52:35 +0800 Subject: [PATCH 4/6] nativeSdk Signed-off-by: guo-chunting --- zh-cn/native_sdk/media/av_session/av_session.h | 4 ++-- zh-cn/native_sdk/media/av_session/avsession_info.h | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/native_sdk/media/av_session/av_session.h b/zh-cn/native_sdk/media/av_session/av_session.h index e7b538de..9e90afe4 100644 --- a/zh-cn/native_sdk/media/av_session/av_session.h +++ b/zh-cn/native_sdk/media/av_session/av_session.h @@ -79,7 +79,7 @@ public: /** * @brief 获取会话元数据。 * - * @param meta 用于保存会话元数据的{@link AVMetaData}对象。 + * @param meta 会话的元数据{@link AVMetaData}对象。 * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see SetAVMetaData @@ -91,7 +91,7 @@ public: /** * @brief 设置会话元数据。 * - * @param meta 用于修改会话元数据的{@link AVMetaData}对象。 + * @param meta 会话的元数据{@link AVMetaData}对象。 * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see GetAVMetaData diff --git a/zh-cn/native_sdk/media/av_session/avsession_info.h b/zh-cn/native_sdk/media/av_session/avsession_info.h index 083ef081..38f20cae 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_info.h +++ b/zh-cn/native_sdk/media/av_session/avsession_info.h @@ -317,13 +317,13 @@ enum SessionDataCategory { /** 无效类型,内部用于类型是否有效 */ SESSION_DATA_CATEGORY_INVALID = -1, /** 会话元数据 */ - SESSION_DATA_META, + SESSION_DATA_META = 0, /** 会话播放状态 */ - SESSION_DATA_PLAYBACK_STATE, + SESSION_DATA_PLAYBACK_STATE = 1, /** 会话控制命令 */ - SESSION_DATA_CONTROL_COMMAND, + SESSION_DATA_CONTROL_COMMAND = 2, /** 会话数据类型的数量 */ - SESSION_DATA_CATEGORY_MAX, + SESSION_DATA_CATEGORY_MAX = 3, }; } // namespace OHOS::AVSession /** @} */ -- Gitee From 313ae24fce16ec85ede35d9c2cb0c506c7cc1e91 Mon Sep 17 00:00:00 2001 From: guo-chunting Date: Fri, 2 Sep 2022 10:08:28 +0800 Subject: [PATCH 5/6] nativeSdk Signed-off-by: guo-chunting --- zh-cn/native_sdk/media/av_session/av_session.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/native_sdk/media/av_session/av_session.h b/zh-cn/native_sdk/media/av_session/av_session.h index 9e90afe4..537a3ddc 100644 --- a/zh-cn/native_sdk/media/av_session/av_session.h +++ b/zh-cn/native_sdk/media/av_session/av_session.h @@ -79,7 +79,7 @@ public: /** * @brief 获取会话元数据。 * - * @param meta 会话的元数据{@link AVMetaData}对象。 + * @param meta 用于保存会话的元数据{@link AVMetaData}对象。 * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see SetAVMetaData @@ -91,7 +91,7 @@ public: /** * @brief 设置会话元数据。 * - * @param meta 会话的元数据{@link AVMetaData}对象。 + * @param meta 用于修改会话的元数据{@link AVMetaData}对象。 * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #ERR_NO_MEMORY},{@link #ERR_SERVICE_NOT_EXIST}等等。 * @see GetAVMetaData -- Gitee From 061c6a19a51328267e7eac34836077fe4ba31518 Mon Sep 17 00:00:00 2001 From: guo-chunting Date: Fri, 2 Sep 2022 10:20:01 +0800 Subject: [PATCH 6/6] nativeSdk Signed-off-by: guo-chunting --- zh-cn/native_sdk/media/av_session/avmeta_data.h | 2 +- zh-cn/native_sdk/media/av_session/avsession_descriptor.h | 2 +- zh-cn/native_sdk/media/av_session/avsession_info.h | 8 ++++---- zh-cn/native_sdk/media/av_session/avsession_manager.h | 4 ++-- zh-cn/native_sdk/media/av_session/avsession_pixel_map.h | 3 +-- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/zh-cn/native_sdk/media/av_session/avmeta_data.h b/zh-cn/native_sdk/media/av_session/avmeta_data.h index a1a61528..e4b96ea3 100644 --- a/zh-cn/native_sdk/media/av_session/avmeta_data.h +++ b/zh-cn/native_sdk/media/av_session/avmeta_data.h @@ -125,7 +125,7 @@ public: * @version 1.0 */ ~AVMetaData() override = default; - { + { #if !defined(WINDOWS_PLATFORM) and !defined(MAC_PLATFORM) and !defined(IOS_PLATFORM) #if defined(__BIONIC__) mallopt(M_PURGE, 0); diff --git a/zh-cn/native_sdk/media/av_session/avsession_descriptor.h b/zh-cn/native_sdk/media/av_session/avsession_descriptor.h index 22d7a363..d5f6f9d0 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_descriptor.h +++ b/zh-cn/native_sdk/media/av_session/avsession_descriptor.h @@ -108,7 +108,7 @@ struct AVSessionDescriptor { /** * @brief 会话基础信息描述。 - * + * * @since 9 * @version 1.0 */ diff --git a/zh-cn/native_sdk/media/av_session/avsession_info.h b/zh-cn/native_sdk/media/av_session/avsession_info.h index 38f20cae..b34e6427 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_info.h +++ b/zh-cn/native_sdk/media/av_session/avsession_info.h @@ -206,7 +206,7 @@ public: /** * @brief 注册会话输出设备更改。 - * + * * @param outputDeviceInfo 输出设备信息 {@link OutputDeviceInfo}。 * @since 9 * @version 1.0 @@ -276,7 +276,7 @@ public: /** * @brief 注册会话输出设备更改。 - * + * * @param outputDeviceInfo 输出设备信息 {@link OutputDeviceInfo}。 * @since 9 * @version 1.0 @@ -294,7 +294,7 @@ public: /** * @brief 会话令牌的信息。 - * + * * @since 9 * @version 1.0 */ @@ -309,7 +309,7 @@ struct SessionToken { /** * @brief 会话元数据处理标识 - * + * * @since 9 * @version 1.0 */ diff --git a/zh-cn/native_sdk/media/av_session/avsession_manager.h b/zh-cn/native_sdk/media/av_session/avsession_manager.h index 4593e3c8..e881f878 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_manager.h +++ b/zh-cn/native_sdk/media/av_session/avsession_manager.h @@ -182,7 +182,7 @@ public: /** * @brief 将媒体会话投射到远程设备或投射回本地设备。 - * + * * @param token 需要投播的会话令牌。 * @param descriptors 指定要转换的音频设备。 * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, @@ -195,7 +195,7 @@ public: /** * @brief 将此设备的所有媒体会话投播到远程设备。 - * + * * @param descriptors 指定要转换的音频设备。 * @return 成功返回{@link #AVSESSION_SUCCESS};失败则返回对应错误码, * 例如{@link #AVSESSION_ERROR},{@link #ERR_SERVICE_NOT_EXIST}等等。 diff --git a/zh-cn/native_sdk/media/av_session/avsession_pixel_map.h b/zh-cn/native_sdk/media/av_session/avsession_pixel_map.h index 56ac9080..96d1fc1d 100644 --- a/zh-cn/native_sdk/media/av_session/avsession_pixel_map.h +++ b/zh-cn/native_sdk/media/av_session/avsession_pixel_map.h @@ -45,13 +45,12 @@ #endif namespace OHOS::AVSession { - /** 初始化容器大小为160KB */ constexpr size_t DEFAULT_BUFFER_SIZE = 160 * 1024; /** * @brief 读取、设置图片及图片信息。 - * + * */ class AVSessionPixelMap : public Parcelable { public: -- Gitee