智慧服务,成就美好体验 项目咨询

主页 > 服务与支持 > 开发平台 > 客户端SDK参考 > Windows Native SDK > 组件初始化 组件初始化

入门使用

组件初始化

更新时间:2019-11-20

描述

在使用eSDK CloudEC系列业务,配套CloudEC解决方案实现各类业务前,需要先完成SDK初始化。

业务流程

图1 初始化和去初始化组件流程图 

初始化

  1. 应用程序在初始化组件前,调用tsdk_set_config_param()接口设置业务参数。
    说明: 

    除特定的必选参数外,应用程序若不进行相应参数设置,组件则使用默认配置。在初始化前设置的参数包括:

    1. 日志参数,对应的配置ID:TSDK_E_CONFIG_LOG_PARAM,对应的数据结构:TSDK_S_LOG_PARAM。
    2. TLS参数,对应的配置ID:TSDK_E_CONFIG_TLS_PARAM,对应的数据结构:TSDK_S_TLS_PARAM。
    3. 应用程序文件路径信息,对应的配置ID:TSDK_E_CONFIG_APP_FILE_PATH_INFO,对应的数据结构:TSDK_S_APP_FILE_PATH_INFO,此参数在使用“企业通讯录”功能时必选。
    4. 设置会议控制参数,对应的配置ID:TSDK_E_CONFIG_CONF_CTRL_PARAM,对应的数据结构:TSDK_S_CONF_CTRL_PARAM。
    5. 设置会议中显示的本端信息,业务启动前设置,对应的数据结构为:TSDK_S_DISPLAY_LOCAL_INFO。
    代码示例:
    //c code
    int ret;
    TSDK_S_LOG_PARAM logParam;
    memset(&logParam,0,sizeof(TSDK_S_LOG_PARAM));
    
    logParam.file_count = 1;
    logParam.level = TSDK_E_LOG_DEBUG;
    logParam.max_size_kb = 4 * 1024;
    strncpy_s(logParam.path, TSDK_D_MAX_PATH_LEN,"./terminal_sdk_log", _TRUNCATE);
    
    ret = tsdk_set_config_param(TSDK_E_CONFIG_LOG_PARAM, &logParam);
    if (TSDK_SUCCESS != ret)
    {
        LOG_D_AUTH_LOGIN_INFO("set log param failed");
    }
    return ret;
    
     
  2. 应用程序调用tsdk_init()接口实现组件初始化。
    说明: 
    1. 应用程序信息参数(TSDK_S_APP_INFO_PARAM),包含客户端类型、产品信息以及当前应用程序支持的功能,SDK将根据相应的信息完成初始化:
      1. 对于PC客户端,终端类型(client_type)应取值TSDK_E_CLIENT_PC;对于移动客户端,终端类型(client_type)应取值TSDK_E_CLIENT_MOBILE。
      2. 产品名信息,标识应用程序的类型,取值如“HUAWEI SDK MOBILE”(移动)或“HUAWEI SDK DESKTOP”(PC);对于可能存在的EC服务器特定的配置,此值存在差异,若填写与服务器配置不匹配,会导致登录过程失败。
    2. 事件通知回调函数(TSDK_FN_CALLBACK_PTR)由应用程序实现,若回调消息参数存在指针参数,则需应用程序深拷贝后使用,否则组件可能会释放资源,导致程序崩溃。
    3. 应用程序关注的事件:

    事件ID

    事件说明

    TSDK_E_LOGIN_EVT_AUTH_SUCCESS

    鉴权成功(用于呈现登录过程,应用层一般无需处理)

    TSDK_E_LOGIN_EVT_AUTH_FAILED

    鉴权失败。

    TSDK_E_LOGIN_EVT_AUTH_REFRESH_FAILED

    鉴权刷新失败。

    TSDK_E_LOGIN_EVT_LOGIN_SUCCESS

    登录成功。

    TSDK_E_LOGIN_EVT_LOGIN_FAILED

    登录失败。

    TSDK_E_LOGIN_EVT_LOGOUT_SUCCESS

    登出成功。

    TSDK_E_LOGIN_EVT_LOGOUT_FAILED

    登出失败。

    TSDK_E_LOGIN_EVT_FORCE_LOGOUT

    强制登出。

    TSDK_E_LOGIN_EVT_VOIP_ACCOUNT_STATUS

    VOIP帐号信息。

    TSDK_E_LOGIN_EVT_IM_ACCOUNT_STATUS

    IM帐号状态信息。

    TSDK_E_LOGIN_EVT_FIREWALL_DETECT_FAILED

    防火墙探测失败。

    TSDK_E_LOGIN_EVT_BUILD_STG_TUNNEL_FAILED

    创建stg通道失败。

    TSDK_E_CALL_EVT_CALL_START_RESULT

    发起呼叫结果。

    TSDK_E_CALL_EVT_CALL_INCOMING

    来电事件。

    TSDK_E_CALL_EVT_CALL_OUTGOING

    呼出事件。

    TSDK_E_CALL_EVT_CALL_RINGBACK

    回铃音事件(在需要APP播放回铃音时上报)。

    TSDK_E_CALL_EVT_CALL_RTP_CREATED

    RTP通道已建立,可以进行二次拨号。

    TSDK_E_CALL_EVT_CALL_CONNECTED

    通话已建立。

    TSDK_E_CALL_EVT_CALL_ENDED

    呼叫结束。

    TSDK_E_CALL_EVT_CALL_DESTROY

    呼叫结束后销毁呼叫控制信息。

    TSDK_E_CALL_EVT_OPEN_VIDEO_REQ

    远端请求打开视频(音频通话升级为视频通话)。

    TSDK_E_CALL_EVT_REFUSE_OPEN_VIDEO_IND

    远端拒绝请求打开视频通知(远端用户拒绝或超时未响应)。

    TSDK_E_CALL_EVT_CLOSE_VIDEO_IND

    关闭视频通知(视频通话转为音频通话)。

    TSDK_E_CALL_EVT_OPEN_VIDEO_IND

    打开视频通知(音频通话转为视频通话)。

    TSDK_E_CALL_EVT_REFRESH_VIEW_IND

    视频view刷新通知。

    TSDK_E_CALL_EVT_CALL_ROUTE_CHANGE

    移动路由变化通知(主要用于iOS)。

    TSDK_E_CALL_EVT_PLAY_MEDIA_END

    音频文件播结束通知。

    TSDK_E_CALL_EVT_SESSION_MODIFIED

    会话修改完成通知。

    TSDK_E_CALL_EVT_SESSION_CODEC

    会话正在使用的codec通知。

    TSDK_E_CALL_EVT_HOLD_SUCCESS

    保持成功。

    TSDK_E_CALL_EVT_HOLD_FAILED

    保持失败。

    TSDK_E_CALL_EVT_UNHOLD_SUCCESS

    恢复成功。

    TSDK_E_CALL_EVT_UNHOLD_FAILED

    恢复失败。

    TSDK_E_CALL_EVT_ENDCALL_FAILED

    结束通话失败。

    TSDK_E_CONF_EVT_BOOK_CONF_RESULT

    预约会议结果。

    TSDK_E_CONF_EVT_QUERY_CONF_LIST_RESULT

    查询会议列表结果。

    TSDK_E_CONF_EVT_QUERY_CONF_DETAIL_RESULT

    查询会议详情结果。

    TSDK_E_CONF_EVT_JOIN_CONF_RESULT

    加入会议结果。

    TSDK_E_CONF_EVT_GET_DATACONF_PARAM_RESULT

    获取数据会议参数结果。

    TSDK_E_CONF_EVT_CONFCTRL_OPERATION_RESULT

    会控操作结果。

    TSDK_E_CONF_EVT_INFO_AND_STATUS_UPDATE

    会议信息及状态状态更新。

    TSDK_E_CONF_EVT_SPEAKER_IND

    发言方通知。

    TSDK_E_CONF_EVT_REQUEST_CONF_RIGHT_FAILED

    申请会控权限失败(与会者在会议中将无会控权限,但仍可参与会议)。

    TSDK_E_CONF_EVT_CONF_INCOMING_IND

    会议来电通知。

    TSDK_E_CONF_EVT_CONF_END_IND

    会议结束通知。

    TSDK_E_CONF_EVT_JOIN_DATA_CONF_RESULT

    加入数据会议结果。

    TSDK_E_CONF_EVT_AS_SCREEN_DATA_UPDATE

    屏幕数据更新。

    TSDK_E_CONF_EVT_AS_OWNER_CHANGE

    屏幕共享权限拥有者变更通知。

    TSDK_E_CONF_EVT_AS_STATE_CHANGE

    屏幕共享状态变更通知。

    TSDK_E_CONF_EVT_RECV_CHAT_MSG

    收到会议中的聊天消息通知。

    TSDK_E_CONF_EVT_PRESENTER_GIVE_IND

    被设置为主讲人通知。

    TSDK_E_CONF_EVT_SHARE_STATUS_UPDATE_IND

    共享状态更新通知

    TSDK_E_CONF_EVT_DATA_COMPONENT_LOAD_IND

    数据会议功能组件加载通知

    TSDK_E_CONF_EVT_CONF_BASE_INFO_IND

    当前会议基础信息通知

    TSDK_E_CONF_EVT_AS_PRIVILEGE_CHANGE

    屏幕共享权限状态变更通知

    TSDK_E_CONF_EVT_SVC_WATCH_INFO_IND

    SVC(多流)会议下正在观看画面信息通知

    TSDK_E_CTD_EVT_START_CALL_RESULT

    发起ctd呼叫结果。

    TSDK_E_CTD_EVT_END_CALL_RESULT

    结束ctd呼叫结果。

    TSDK_E_CTD_EVT_CALL_STATUS_NOTIFY

    ctd呼叫状态上报。

    TSDK_E_EADDR_EVT_SEARCH_CONTACTS_RESULT

    查询联系人结果。

    TSDK_E_EADDR_EVT_GET_ICON_RESULT

    获取头像结果。

    代码示例:
    //c code
    int ret;
    TSDK_S_APP_INFO_PARAM app_info;
    memset(&app_info, 0, sizeof(app_info));
    
    app_info.client_type = TSDK_E_CLIENT_PC;
    strcpy_s(app_info.product_name, TSDK_D_MAX_PRODUCT_NAME_LEN + 1, "SoftClient on Desktop");
    app_info.support_audio_and_video_call = 1;
    app_info.support_audio_and_video_conf = 1;
    app_info.support_ctd = 1;
    app_info.support_data_conf = 1;
    app_info.support_rich_media_message = 1;
    app_info.support_enterprise_address_book = 1;
    app_info.support_im = 1;
    
    ret = tsdk_init(&app_info, COMPONENT_FN_CALLBACK_PTR);
    return ret;
    
     

去初始化

应用程序关闭时,UI调用tsdk_uninit()去初始化基础组件,释放相应资源。

代码示例:

//c code
int ret;
ret = tsdk_uninit();
return ret;
 

注意事项

无。