客户端 API

    互动白板 API

    更新时间:2021-09-28 15:31

    1 类型定义

    1.1 白板工具

    /**
     * 白板工具
     *
     */
    enum ZegoWhiteboardToolType
    {
        /**
         * 拖拽工具
         */
        kZegoWhiteboardToolNone = 0x00,
    
        /**
         * 涂鸦
         */
        kZegoWhiteboardToolPen = 0x01,
    
        /**
         * 文本
         */
        kZegoWhiteboardToolText = 0x02,
    
        /**
         * 直线
         */
        kZegoWhiteboardToolLine = 0x04,
    
        /**
         * 空心椭圆
         */
        kZegoWhiteboardToolEllipse = 0x08,
    
        /**
         * 空心矩形
         */
        kZegoWhiteboardToolRect = 0x10,
    
        /**
         * 选择
         */
        kZegoWhiteboardToolSelector = 0x20,
    
        /**
         * 橡皮擦
         */
        kZegoWhiteboardToolEraser = 0x40,
    
        /**
         * 激光笔
         */
        kZegoWhiteboardToolLaser = 0x80,
    
        /**
         * 点击
         */
        kZegoWhiteboardToolClick = 0x100,
    };

    1.2 文件上传状态

    /**
     * 文件上传状态
     *
     */
    enum ZegoWhiteboardDocsUploadStatus
    {
        /**
         * 文件上传中
         */
        kZegoWhiteboardDocsUploading = 0,
    
        /**
         * 文件转码中
         */
        kZegoWhiteboardDocsConvering = 1
    };

    1.3 文件转码类型

    /**
     * 文件转码类型
     *
     * 普通文件转码推荐选择kZegoWhiteboardDocsRenderTypeVectorAndIMG,动态PPT文件转码推荐选择kZegoWhiteboardDocsRenderTypeDynamicPPTH5
     *
     */
    enum ZegoWhiteboardDocsRenderType
    {
        /**
         * 向量模式,适用于文件共享SDK PC端、移动端做的文档智能转换,能够更好地支持文档浏览以及更清晰的缩放。
         */
        kZegoWhiteboardDocsRenderTypeVector = 1,
    
        /**
         * 图片模式,适用于文件共享SDK Web端、小程序使用的文档转换,按文件样式每一页都生成图片样式。
         */
        kZegoWhiteboardDocsRenderTypeIMG = 2,
    
        /**
         * 向量和图片模式,适用于当存在Web端、小程序、移动端、PC端,多端的并存情况,在web端、小程序将使用IMG图片模式,而PC端、移动端将使用Vector向量模式。
         */
        kZegoWhiteboardDocsRenderTypeVectorAndIMG = 3,
    
        /**
         * 动态PPT模式,适用于文件共享SDK PC端、移动端、Web端、小程序使用的PPT文件转码格式,会将PPT文件转成动态PPT的H5文件。
         */
        kZegoWhiteboardDocsRenderTypeDynamicPPTH5 = 6
    };

    1.4 文件类型

    /**
     * 文件类型
     *
     */
    enum ZegoWhiteboardDocsType
    {
        /**
         * 未知类型
         */
        kZegoWhiteboardDocsTypeUnknown = 0x0,
    
        /**
         * PPT
         */
        kZegoWhiteboardDocsTypePPT = 0x1,
    
        /**
         * Word
         */
        kZegoWhiteboardDocsTypeDOC = 0x2,
    
        /**
         * Excel
         */
        kZegoWhiteboardDocsTypeELS = 0x4,
    
        /**
         * PDF
         */
        kZegoWhiteboardDocsTypePDF = 0x8,
    
        /**
         * 常见的图片类型
         */
        kZegoWhiteboardDocsTypeIMG = 0x10,
    
        /**
         * 普通文本文件
         */
        kZegoWhiteboardDocsTypeTXT = 0x20,
    
        /**
         * H5
         */
        kZegoWhiteboardDocsTypeH5 = 0x40,
    
        /**
         * H5 PDF
         */
        kZegoWhiteboardDocsTypeH5PDF = 0x80,
    
        /**
         * 图片类型的PDF
         */
        kZegoWhiteboardDocsTypeIMGAndPDF = 0x100,
    
        /**
         * 动态PPT
         */
        kZegoWhiteboardDocsTypeDynamicPPTH5 = 0x200,
    
        /**
         * 文件夹
         */
        kZegoWhiteboardDocsTypeFolder = 0x10000000,
    };

    1.5 白板类型

    /**
     * 白板类型
     *
     */
    enum ZegoWhiteboardRenderMode
    {
        /**
         * 普通白板类型
         */
        kZegoWhiteboardRenderModeWhiteboard,
    
        /**
         * 文件白板类型
         */
        kZegoWhiteboardRenderModeWhiteboardDocs,
    };

    1.6 白板属性

    /**
     * 白板属性
     *
     */
    struct ZegoWhiteboardViewModel
    {
        /**
         * 白板类型
         */
        ZegoWhiteboardRenderMode mode;
    
        /**
         * 白板所属房间id
         */
        char room_id[256];
    
        /**
         * 白板名称,当白板类型是文件白板时,则为文件名称
         */
        char name[128];
    
        /**
         * 白板的等比宽
         */
        unsigned int aspect_width;
    
        /**
         * 白板的等比高
         */
        unsigned int aspect_height;
    
        /**
         * 白板的页数
         */
        int page_count;
    
        /**
         * 白板的创建时间,单位毫秒
         */
        unsigned long long create_time;
    
        /**
         * 白板关联的文件信息,当白板类型是文件白板时,此结构必须填充
         */
        struct ZegoWhiteboardViewFileInfo file_info;
    };

    白板信息

    描述白板的数据结构,用来初始化 ZegoWhiteboardView 以及同步相关信息到远端。

    例如:如果我们需要创建一个 16:9 的白板,并且宽度可以有 5 页,那么相关参数设置为:

    ZegoWhiteboardViewModel model
    memset(&model,0,sizeof(model));
    
    model.aspect_width = 16.0 * 5
    model.aspect_height = 9.0
    model.page_count = 5
    
    strcpy(model.name,"白板名字");

    1.7 白板关联的文件信息

    /**
     * 白板关联文件信息
     *
     */
    struct ZegoWhiteboardViewFileInfo
    {
        /**
         * 文件ID,如果为空,表示没有关联文件
         */
        char file_id[256];
    
        /**
         * 文件名称,如果是Excel类型的文件,则为Sheet的名称
         */
        char file_name[256];
    
        /**
         * 文件共享鉴权字段,暂未使用
         */
        char auth_key[256];
    
        /**
         * 文件类型
         */
        enum ZegoWhiteboardDocsType file_type;
    };

    1.8 标识 view ID

    typedef unsigned long long ZegoWhiteboardViewID;

    1.9 标识白板 ID

    typedef unsigned long long ZegoWhiteboardID;

    2 方法

    2.1 设置 log 等级和路径

    /**
     * 设置log路径
     *
     * @param log_path log保存路径
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_log_folder(const char* log_path);

    2.2 设置 SDK 缓存路径

    /**
     * 设置SDK缓存路径
     *
     * 当使用文件白板时,此方法必须设置
     *
     * @param cache_path SDK缓存路径
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_cache_folder(const char* cache_path);

    2.3 获取 SDK 版本号

    /**
     * 获取SDK版本号
     *
     * @return SDK版本号
     */
    ZEGOAPI const char* ZEGOCALL zego_whiteboard_get_version();

    2.4 注册错误通知

    /**
     * 注册错误通知
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_error_notify(zego_whiteboard_error_notify fn, void* user_context);

    2.5 设置是否测试环境

    /**
     * 设置是否使用测试环境
     *
     * @param is_test 是否使用测试环境
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_test_env(bool isTese);

    2.6 设置用户自定义属性

    /**
     * 设置用户自定义属性
     *
     * @return 成功或失败
     */
    ZEGOAPI bool ZEGOCALL zego_whiteboard_set_custom_config(const char* key, const char* value);

    2.7 初始化 SDK

    /**
     * 初始化SDK
     *
     * 在初始化房间之后,在登录房间之前调用
     *
     * @param app_sign byte数组 例如{0x7f, 0xa0, 0xba,....}
     * @param sign_len app_sign数组长度
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_initialize(unsigned int app_id, const char* app_sign, unsigned int sign_len);

    2.8 注册 SDK 初始化回调

    /**
     * 注册SDK初始化回调
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_initialize_callback(zego_whiteboard_initialize_callback fn, void* user_context);

    2.9 反初始化 SDK

    /**
     * 反初始化SDK
     *
     * 在退出房间之后,反初始化房间之前调用
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_uninitialize();

    2.10 注册 SDK 反初始化回调

    /**
     * 注册SDK反初始化回调
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_uninitialize_callback(zego_whiteboard_uninitialize_callback fn, void* user_context);

    2.11 获取当前房间内所有白板

    /**
     * 获取当前房间内所有白板
     *
     * 此操作会请求后台拉取房间内的白板,一般在进入房间后立即拉取一次
     *
     * @return 请求序号
     */
    ZEGOAPI ZegoSeq ZEGOCALL zego_whiteboard_get_whiteboard_list();

    2.12 注册获取白板列表回调

    /**
     * 注册获取白板列表回调
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_get_whiteboard_list_callback(zego_whiteboard_get_whiteboard_list_callback fn, void* user_context);

    2.13 创建 view

    /**
     * 创建view, 用来显示白板
     *
     * 用于显示白板,view窗口与父窗口并不是实际的父子关系,view窗口始终能保持在父窗口的上层,当父窗口的位置或者大小发生变更时,需调用zego_whiteboard_show_view调整白板的位置和大小。
     *
     * @param parent 父窗口句柄
     *
     * @return 请求序号
     */
    ZEGOAPI ZegoSeq ZEGOCALL zego_whiteboard_create_view(WINDOW_HANDLE parent);

    2.14 注册创建 view 窗口回调

    /**
     * 注册创建view窗口回调
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_create_view_callback(zego_whiteboard_create_view_callback fn, void* user_context);

    2.15 显示或者隐藏 view

    /**
     * 显示或者隐藏view
     *
     * 1. 当父窗口移动、大小变更时,调用 zego_whiteboard_show_view(view_id, true) 调整白板位置
     * 2. 当父窗口最小化、隐藏时,调用 zego_whiteboard_show_view(view_id, false) 隐藏白板
     *
     * @param view_id view标识
     * @param show 显示或者隐藏
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_show_view(ZegoWhiteboardViewID view_id, bool show);

    2.16 获取 view 的窗口句柄

    /**
     * 获取view的窗口句柄
     *
     * @param view_id view标识
     *
     * @return 窗口句柄
     */
    ZEGOAPI WINDOW_HANDLE ZEGOCALL zego_whiteboard_get_view_hwnd(ZegoWhiteboardViewID view_id);

    2.17 销毁 view

    /**
     * 销毁view
     *
     * @param view_id view标识
     *
     * @return 请求序号
     */
    ZEGOAPI ZegoSeq ZEGOCALL zego_whiteboard_destroy_view(ZegoWhiteboardViewID view_id);

    2.18 注册销毁 view 回调

    /**
     * 注册销毁view回调
     *
     * @param fn 回调函数地址
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_destroy_view_callback(zego_whiteboard_destroy_view_callback fn, void* user_context);

    2.19 创建白板

    /**
     * 创建白板
     *
     * @param view_model 1. 如果创建纯白板,则必须设置的值有mode、name、aspect_widht、aspect_height、page_count
     *                   2. 如果是文件白板,则必须设置的值有mode、file_info.file_id,其他均为SDK内部填充
     *
     * @return 请求序号
     */
    ZEGOAPI ZegoSeq ZEGOCALL zego_whiteboard_create_whiteboard(struct ZegoWhiteboardViewModel view_model);

    2.20 注册创建白板回调

    /**
     * 注册创建白板回调
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_create_whiteboard_callback(zego_whiteboard_create_whiteboard_callback fn, void* user_context);

    2.21 销毁白板

    /**
     * 销毁白板
     *
     * @param whiteboard_id 白板标识
     *
     * @return 请求序号
     */
    ZEGOAPI ZegoSeq ZEGOCALL zego_whiteboard_destroy_whiteboard(ZegoWhiteboardID whiteboard_id);

    2.22 注册销毁白板回调

    /**
     * 注册销毁白板回调
     *
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_destroy_whiteboard_callback(zego_whiteboard_destroy_whiteboard_callback fn, void* user_context);

    2.23 获取白板属性

    /**
     * 获取白板属性
     *
     * @param whiteboard_id 白板标识
     *
     * @return 白板属性
     */
    ZEGOAPI struct ZegoWhiteboardViewModel* ZEGOCALL zego_whiteboard_get_whiteboard_view_model(ZegoWhiteboardID whiteboard_id);

    2.24 设置 view 当前显示的白板

    /**
     * 设置view当前显示的白板
     *
     * @param view_id view标识
     * @param whiteboard_id 白板标识
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_current_whiteboard(ZegoWhiteboardViewID view_id, ZegoWhiteboardID whiteboard_id);

    2.25 获取 view 当前显示的白板

    /**
     * 获取view当前显示的白板
     *
     * @param view_id view标识
     *
     * @return 白板标识
     */
    ZEGOAPI ZegoWhiteboardID ZEGOCALL zego_whiteboard_get_current_whiteboard(ZegoWhiteboardViewID view_id);

    2.26 获取当前滚动百分比

    /**
     * 获取当前滚动百分比
     *
     * @param whiteboard_id 白板标识
     * @param horizontal 水平滚动百分比
     * @param vertical 垂直滚动百分比
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_get_current_scroll_percent(ZegoWhiteboardID whiteboard_id, float* horizontal_percent, float* vertical_percent);

    2.27 滚动白板

    /**
     * 滚动白板
     *
     * @param whiteboard_id 白板标识
     * @param horizontal 水平滚动百分比(0.0000000~1.0000000)
     * @param vertical 垂直滚动百分比(0.0000000~1.0000000)
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_scroll(ZegoWhiteboardID whiteboard_id, float horizontal_percent, float vertical_percent);

    2.28 设置白板缩放系数

    /**
     * 设置白板缩放系数
     *
     * @param whiteboard_id 白板标识
     * @param factor 缩放系数(1.0000000~3.0000000)
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_scale_factor(ZegoWhiteboardID whiteboard_id, float factor);

    2.29 获取白板缩放系数

    /**
     * 获取白板缩放系数
     *
     * @param whiteboard_id 白板标识
     *
     * @return 白板缩放系数
     */
    ZEGOAPI float ZEGOCALL zego_whiteboard_get_scale_factor(ZegoWhiteboardID whiteboard_id);

    2.30 获取白板总页数

    /**
     * 获取白板总页数
     *
     * 1. 当ZegoWhiteboardAttribute.mode是kZegoWhiteboardRenderModeWhiteboard时,获取的是创建白板时设置的总页数ZegoWhiteboardAttribute.page_count
     * 2. 当ZegoWhiteboardAttribute.mode是kZegoWhiteboardRenderModeWhiteboardDocs时,获取的是文件的页数,txt与图片类型的文件页数固定为1
     *
     * @param whiteboard_id 白板标识
     *
     * @return 白板总页数
     */
    ZEGOAPI unsigned int ZEGOCALL zego_whiteboard_get_page_count(ZegoWhiteboardID whiteboard_id);

    2.31 获取白板当前显示的页码

    /**
     * 获取白板当前显示的页码
     *
     * @param whiteboard_id 白板标识
     *
     * @return 当前页码
     */
    ZEGOAPI unsigned int ZEGOCALL zego_whiteboard_get_current_page(ZegoWhiteboardID whiteboard_id);

    2.32 下一页

    /**
     * 下一页
     *
     * @param whiteboard_id 白板标识
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_next_page(ZegoWhiteboardID whiteboard_id);

    2.33 上一页

    /**
     * 上一页
     *
     * @param whiteboard_id 白板标识
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_previous_page(ZegoWhiteboardID whiteboard_id);

    2.34 跳转到指定页

    /**
     * 跳转到指定页
     *
     * @param whiteboard_id 白板标识
     * @param page 指定页
     */
    ZEGOAPI void ZEGOCALL  zego_whiteboard_flip_page(ZegoWhiteboardID whiteboard_id, unsigned int page);

    2.35 动态 PPT 下一步

    /**
     * 动态ppt下一步
     *
     * 只当文件时动态ppt时才生效
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_docs_next_step(ZegoWhiteboardID whiteboard_id);

    2.36 动态 PPT 上一步

    /**
     * 动态ppt上一步
     *
     * 只当文件时动态ppt时才生效
     *
     * @param whiteboard_id  白板标识
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_docs_previous_step(ZegoWhiteboardID whiteboard_id);

    2.37 动态 PPT 获取当前页的总步数

    /**
     * 动态ppt获取当前页的总步数
     *
     * 只当文件时动态ppt时才生效
     *
     * @param whiteboard_id 白板标识
     *
     * @return 当前页总步数
     */
    ZEGOAPI unsigned int ZEGOCALL zego_whiteboard_docs_get_step_count(ZegoWhiteboardID whiteboard_id);

    2.38 获取动态 PPT 当前页的当前步数

    /**
     * 获取动态ppt当前页的当前步数
     *
     * 只当文件时动态ppt时才生效
     *
     * @param whiteboard_id 白板标识
     *
     * @return 当前页的当前步数
     */
    ZEGOAPI unsigned int ZEGOCALL zego_whiteboard_docs_get_current_step(ZegoWhiteboardID whiteboard_id);

    2.39 注册房间内其他成员创建白板通知

    /**
     *  注册房间内其他成员创建白板通知
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_added_whiteboard_notify(zego_whiteboard_added_whiteboard_notify fn, void* user_context);

    2.40 注册房间内其他成员销毁白板通知

    /**
     * 注册房间内其他成员销毁白板通知
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_removed_whiteboard_notify(zego_whiteboard_removed_whiteboard_notify fn, void* user_context);

    2.41 注册白板滚动变更通知

    /**
     * 注册白板滚动变更通知
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_reg_scroll_changed_notify(zego_whiteboard_scroll_changed_notify fn, void* user_context);

    2.42 注册动态 PPT 步数变更通知

    /**
     * 注册动态ppt步数变更通知
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_docs_reg_step_changed_notify(zego_whiteboard_docs_step_changed_notify fn, void* user_context);

    3 白板方法

    3.1 设置使用的白板工具

    /**
     * 设置使用的白板工具
     *
     * @param type 白板工具类型
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_tool_type(enum ZegoWhiteboardToolType type);

    3.2 获取正在使用的白板工具

    /**
     * 获取正在使用的白板工具
     *
     * @return 正在使用的白板工具类型
     */
    ZEGOAPI enum ZegoWhiteboardToolType ZEGOCALL zego_whiteboard_get_tool_type();

    3.3 设置画笔颜色

    /**
     * 设置画笔颜色
     *
     * @param argb 画笔颜色
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_brush_color(unsigned int argb);

    3.4 获取当前画笔颜色

    /**
     * 获取当前画笔颜色
     *
     * @return 当前白板画笔颜色
     */
    ZEGOAPI unsigned int ZEGOCALL zego_whiteboard_get_brush_color();

    3.5 设置画笔粗细

    /**
     * 设置画笔粗细
     *
     * 绘制的画笔粗细并不是设置的值,而是根据白板实际的显示大小作调整,实际绘制的size=白板view宽度/1280*size
     *
     * @param size 画笔粗细
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_brush_size(unsigned int size);

    3.6 获取当前画笔粗细

    /**
     * 获取当前画笔粗细
     *
     * @return 当前白板画笔粗细
     */
    ZEGOAPI unsigned int ZEGOCALL zego_whiteboard_get_brush_size();

    3.7 设置文本大小

    /**
     * 设置文本大小
     *
     * 绘制的文本大小并不是设置的值,而是根据白板实际的显示大小作调整,实际绘制的size=白板view宽度/1280*size
     *
     * @param size 文本大小
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_text_size(unsigned int size);

    3.8 获取当前文本大小

    /**
     * 获取当前文本大小
     *
     * @return 当前文本大小
     */
    ZEGOAPI unsigned int ZEGOCALL zego_whiteboard_get_text_size();

    3.9 设置文本是否粗体

    /**
     * 设置文本是否粗体
     *
     * @param bold 是否粗体
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_text_bold(bool bold);

    3.10 获取文本是否粗体

    /**
     * 获取文本是否粗体
     *
     * @return 是否粗体
     */
    ZEGOAPI bool ZEGOCALL zego_whiteboard_get_text_bold();

    3.11 设置文本斜体

    /**
    设置文本斜体
    
    @param    是否斜体
    */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_text_italic(bool italic);

    3.12 获取文本是否斜体

    /**
     * 设置文本是否斜体
     *
     * @param italic 是否斜体
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_text_italic(bool italic);

    3.13 设置白板是否允许操作

    /**
     * 设置白板是否允许操作
     *
     * 白板默认允许操作,禁用后,白板不响应鼠标消息
     *
     * @param whiteboard_id 白板标识
     * @param enable 是否允许操作
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_enable(ZegoWhiteboardID whiteboard_id, bool enable);

    3.14 获取白板是否允许操作

    /**
     * 获取白板是否允许操作
     *
     * @return 是否允许操作
     */
    ZEGOAPI bool ZEGOCALL zego_whiteboard_is_enable(ZegoWhiteboardID whiteboard_id);

    3.15 设置白板背景色

    /**
     * 设置白板背景色
     *
     * @param whiteboard_id 白板标识
     * @param a_rgb 白板背景色
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_set_background_color(ZegoWhiteboardID whiteboard_id, unsigned int argb);

    3.16 获取白板背景色

    /**
     * 获取白板背景色
     *
     * @param whiteboard_id 白板标识
     *
     * @return 白板背景色
     */
    ZEGOAPI unsigned int ZEGOCALL zego_whiteboard_get_background_color(ZegoWhiteboardID whiteboard_id);

    3.17 撤销白板操作

    /**
     * 撤销白板操作
     *
     * 只能撤销本地的操作
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_undo(ZegoWhiteboardID whiteboard_id);

    3.18 重做白板操作

    /**
     * 重做白板操作
     *
     * 只能重做本地操作
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_redo(ZegoWhiteboardID whiteboard_id);

    3.19 清空白板所有内容

    /**
     * 清空白板所有内容
     *
     * 清空操作无法撤销
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_clear(ZegoWhiteboardID whiteboard_id);

    4 文件方法

    4.1 上传文件并转码

    /**
     * 上传文件并转码
     *
     * @param file_path 文件本地路径,utf8编码
     * @param type 转码类型,动态ppt类型文件选择kZegoWhiteboardDocsRenderTypeVectorAndIMG,其他类型可选择kZegoWhiteboardDocsRenderTypeVectorAndIMG
     * @param password 密码,暂未使用
     *
     * @return 请求序号
     */
    ZEGOAPI ZegoSeq ZEGOCALL zego_whiteboard_docs_upload(const char* file_path, enum ZegoWhiteboardDocsRenderType type, const char* password);

    4.2 注册上传文件进度通知

    /**
     * 注册上传文件进度通知
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_docs_reg_upload_progress_notify(zego_whiteboard_docs_upload_progress_notify fn, void *user_context);

    4.3 注册上传文件结果回调

    /**
     * 注册上传文件结果回调
     *
     * @param fn 回调函数地址
     * @param user_context 用户自定义数据
     */
    ZEGOAPI void ZEGOCALL zego_whiteboard_docs_reg_upload_callback(zego_whiteboard_docs_upload_callback fn, void* user_context);

    4.4 获取指定 PPT 所有页的备注

    /**
     * 获取指定ppt所有页的备注
     *
     * @param file_id 文件ID
     *
     * @return 所有页的备注,以“|”分割,note1|note2|note3|....
     */
    ZEGOAPI const char* ZEGOCALL zego_whiteboard_docs_get_ppt_notes(const char* file_id);

    4.5 获取指定文件所有页的缩略图

    /**
     * 获取指定文件所有页的缩略图
     *
     * @param file_id 文件ID
     *
     * @return 所有页的缩略图url,以“|”分割,url1|url2|url3|....
     */
    ZEGOAPI const char* ZEGOCALL zego_whiteboard_docs_get_thumbnail_url(const char* file_id);

    5 回调原型定义

    5.1 SDK 运行错误通知

    /**
     * SDK 运行错误通知
     *
     * @param error_code 错误码
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_error_notify)(ZegoWhiteboardErrorCode error_code, void* user_context);

    5.2 初始化 SDK 的回调

    /**
     * 初始化SDK的回调
     *
     * @param error_code 错误码
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_initialize_callback)(ZegoWhiteboardErrorCode error_code, void* user_context);

    5.3 反初始化 SDK 的回调

    /**
     * 反初始化SDK的回调
     *
     * @param error_code 错误码
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_uninitialize_callback)(ZegoWhiteboardErrorCode error_code, void* user_context);

    5.4 获取当前房间内白板列表的回调

    /**
     * 获取当前房间内白板列表的回调
     *
     * @param seq 调用zego_whiteboard_get_whiteboard_list返回的请求序号
     * @param error_code 错误码
     * @param whiteboard_id_list 房间内的白板列表
     * @param count 房间内的白板数量
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_get_whiteboard_list_callback)(ZegoSeq seq, ZegoWhiteboardErrorCode error_code, ZegoWhiteboardID* whiteboard_id_list, unsigned int count, void* user_context);
    

    5.5 创建 view 的回调

    /**
     * 创建view的回调
     *
     * @param seq 调用 zego_whiteboard_create_view 返回的请求序号
     * @param error_code 错误码
     * @param view_id 白板viewID
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_create_view_callback)(ZegoSeq seq, ZegoWhiteboardErrorCode error_code, ZegoWhiteboardViewID view_id, void* user_context);

    5.6 销毁 view 的回调

    /**
     * 销毁view的回调
     *
     * @param seq 调用 zego_whiteboard_destroy_view 返回的请求序号
     * @param error_code 错误码
     * @param view_id 被销毁的白板viewID
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_destroy_view_callback)(ZegoSeq seq, ZegoWhiteboardErrorCode error_code, ZegoWhiteboardViewID view_id, void* user_context);

    5.7 创建白板的回调

    /**
     * 创建白板的回调
     *
     * @param seq 调用 zego_whiteboard_create_whiteboard 返回的请求序号
     * @param error_code 错误码
     * @param whiteboard_id_list 创建成功返回的白板列表
     * @param count 白板数量,创建Excel类型的白板时,返回的是Sheet的数量,因为一个Sheet对应一个白板,其他类型均为1
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_create_whiteboard_callback)(ZegoSeq seq, ZegoWhiteboardErrorCode error_code, ZegoWhiteboardID* whiteboard_id_list, int count, void* user_context);

    5.8 销毁白板的回调

    /**
     * 销毁白板的回调
     *
     * @param seq 调用 zego_whiteboard_destroy_whiteboard 返回的请求序号
     * @param error_code 错误码
     * @param whiteboard_id 被销毁的白板
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_destroy_whiteboard_callback)(ZegoSeq seq, ZegoWhiteboardErrorCode error_code, ZegoWhiteboardID whiteboard_id, void* user_context);

    5.9 房间内其他成员创建白板的通知

    /**
     * 房间内其他成员创建白板的通知
     *
     * @param whiteboard_id_list 其他成员创建的白板列表
     * @param count 白板数量
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_added_whiteboard_notify)(ZegoWhiteboardID* whiteboard_id_list, unsigned int count, void* user_context);

    5.10 房间内其他成员销毁白板的通知

    /**
     * 房间内其他成员销毁白板的通知
     *
     * @param whiteboard_id 被销毁的白板
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_removed_whiteboard_notify)(ZegoWhiteboardID whiteboard_id, void* user_context);

    5.11 白板发生滚动的通知

    /**
     * 白板发生滚动的通知
     *
     * 本端的翻页、滚动和房间内其他成员的翻页、滚动都会触发此通知
     *
     * @param whiteboard_id 发生滚动的白板
     * @param horizontal_percent 滚动之后的水平百分比
     * @param vertical_percent 滚动之后的垂直百分比
     * @param page 滚动之后的当前页码
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_scroll_changed_notify)(ZegoWhiteboardID whiteboard_id, float horizontal_percent, float vertical_percent, unsigned int page, void* user_context);

    5.12 文件上传转码进度通知

    /**
     * 文件上传转码进度通知
     *
     * @param seq 调用 zego_whiteboard_docs_upload 返回的请求序号
     * @param status 文件上传转码状态
     * @param rate 文件上传进度
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_docs_upload_progress_notify)(ZegoSeq seq, enum ZegoWhiteboardDocsUploadStatus status, float rate, void *user_context);

    5.13 文件上传转码的回调

    /**
     * 文件上传转码的回调
     *
     * @param seq 调用 zego_whiteboard_docs_upload 返回的请求序号
     * @param error_code 错误码
     * @param file_id 文件ID,创建白板时使用
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_docs_upload_callback)(ZegoSeq seq, ZegoWhiteboardErrorCode error_code, const char* file_id, void* user_context);

    5.14 动态 PPT 发生滚动或者步数变更的通知

    /**
     * 动态ppt发生滚动或者步数变更的通知
     *
     * @param whiteboard_id 发生滚动的白板
     * @param horizontal_percent 滚动后的水平百分比
     * @param vertical_percent 滚动后的垂直百分比
     * @param page 滚动后的当前页码
     * @param step 滚动后的当前页的当前步数
     * @param user_context 用户自定义数据
     */
    typedef void(*zego_whiteboard_docs_step_changed_notify)(ZegoWhiteboardID whiteboard_id, float horizontal_percent, float vertical_percent, unsigned int page, unsigned int step, void* user_context);
    本篇目录