快速集成
更新时间:2025-12-09 09:27:24

亿联会议 Electron SDK

准备工作

  1. 在系统集成开发之前,你需要有个亿联云视讯的账号,用于创建亿联会议供联调用。

    注册亿联云视讯

    联系我们

  1. 环境搭建 目前win平台下SDK只支持 electron 32位版本

    win平台安装依赖前,需配置下.npmrc

    1、项目根目录添加 .npmrc 文件

    //.npmrc
    
    arch=ia32
    
    

SDK概述

提供的SDK包内,将包含以下文件:

cloud_electron_quickguide_1

ylsdk_windows_c.zip / ylsdk_macos_c.zip: 亿联会议 C++ SDK ylsdk electron sdk: 亿联会议 electron SDK ylsdk electron demo: electron 集成 DEMO

用途说明:

ylsdk_windows_c.zip / ylsdk_macos_c.zip

C++ SDK,electron 集成不需要引入

cloud_electron_quickguide_2

demo:YLSDK 的 API 测验demo(sdk_api_demo)、YLSDK 的集成演示demo(vcd_sdk_demo) ylsdk:YLSDK 主体,亿联会议功能基础库及资源,发布 App 时需携带 ylsdk_h:App 集成 YLSDK 时编译所需头文件,可在集成时查看接口已参数说明 ylsdk_lib:App 集成 YLSDK 时编译所需 .lib 及运行所需 .dll

ylsdk electron sdk.zip

electron 需要引入 ylsdk electron sdk 中的 win/mac 文件

win

cloud_electron_quickguide_3

mac

cloud_electron_quickguide_4

ylsdk:YLSDK 主体,可从 ylsdk_windows_c.zip/ylsdk_macos_c.zip压缩包中获取

yealink.node:提供给 electron 引用

yealink_sdk_lib.dll/libyealink_sdk_lib.dylib:App 运行所需.dll, 可从 ylsdk_windows_c.zip / ylsdk_macos_c.zip 压缩包目录ylsdk_lib 中获取

ylsdk electron demo.zip

运行DEMO前请查看 readme.md

cloud_electron_quickguide_5

lib: 静态资源文件夹,存放SDK src: 集成代码

快速集成

Electron 配置

创建窗口时需要增加以下配置

//main.js

...

    new BrowserWindow({
        ...,
        webPreferences: {
            ...,
            nodeIntegration: true, //启用 Node integration
            contextIsolation: false, //取消上下文隔离
            },
        });

electron_sdk 需要作为静态资源引用,存放在静态资源文件夹; 使用 electron-builder 打包时需要注意配置 extraResources

// package.json

...
    
"build": {
    "productName": "ylsdk demo",
    "appId": "ylsdk_demo",
    "directories": {
        "output": "build"
            },
    "extraResources": [
        "lib/**/*"
        ]
    },

引入 SDK

集成时请注意SDK文件在开发环境/打包后路径问题

// renderer.js

const yealink = require(path.join(process.cwd(), './lib/win/yealink.node'));

集成流程

  1. 初始化 SDK

    // 需要指定到 ylsdk 的 bin 目录下
    yealink.LoadSDK(path.join(process.cwd(), './lib/win/ylsdk/bin'));
    
  2. 鉴权

    // 鉴权
    yealink.AuthService_AuthSDK({
       strAppID: 'strAppID',
       strAppSecret: 'strAppSecret',
    });
    // strAppID, strAppSecret 可联系亿联销售人员获取
    
  3. 登录

    /**
    * 鉴权方式,默认通过云视讯-密码登录方式鉴权
    * 0 云视讯-密码登录
    * 1 邮箱登录
    */
    let eAuthType = 0;
    
    // 登录
    const YLSDKERR = yealink.AuthService_Login({
       strAccount: 'strAccount', // 账号
       strPassword: 'strPassword', // 密码
       eAuthType,
    });
    
  4. 加入会议

    /**
    * 会议媒体类型,是否需要使用视频
    * 0 纯音频通话
    * 1 音视频通话
    */
    let eMediaType = 1;
    /** 会议号 */
    let strMeetingId = "xxx";
    /** 会议密码 */
    let strPassword = "";
    
    // 加入会议
    yealink.MeetingService_JoinMeeting(strMeetingId, strPassword,
    eMediaType);
    
  5. 未登录入会

    /** 用户名 */
    let strUserName = '';
    /** 会议id */
    let strMeetingId = '';
    /** 会议密码 */
    let strPassword = '';
    /** 是否开启麦克风 */
    let bAudioSendOn = true;
    /** 是否开启摄像头 */
    let bVideoSendOn = true;
    
    // 未登录入会
    yealink.MeetingService_JoinMeetingWithoutLogin({
       strUserName,
       strMeetingId,
       strPassword,
       bAudioSendOn,
       bVideoSendOn,
    });
    
  6. 卸载SDK

    集成时请注意,退出进程前一定要调用

    window.onunload = () => {
    /**
    * 清理sdk资源
    * 退出进程前一定要调用
    */
    yealink.CleanUPSDK();
    };  
    
  7. 接口返回值枚举说明

    /**
    * 错误码
    */
    enum YLSDKERR
       {
       YLSDKERR_SUCCESS = 0,/** < 返回成功 */
           YLSDKERR_NOT_SUPPORT = 1,/** < 还不支持的功能 */
           YLSDKERR_LOADSDK_FAIL = 2,/** < 加载sdk失败 */
           YLSDKERR_AUTH_FAIL = 3,/** < 鉴权失败 */
           YLSDKERR_PARAM_ERR = 4,/** < 参数错误 */
           YLSDKERR_NOT_LOAD = 5,/** < 该功能邀请load之后才能调用,但是在load之前调用
    了 */
           YLSDKERR_NOT_INIT = 6,/** < 该功能要求init之后才能调用,但是在init之前调用
    了 */
           YLSDKERR_ALREADY_INITED = 7,/** < 该功能要求init之前才能调用,但是在init
    之后调用了 */
           YLSDKERR_NOT_LOGIN = 8,/** < 该功能要求login之后才能调用,但是在login之前
    调用了 */
           YLSDKERR_ALREADY_LOGIN = 9,/** < 该功能要求login之前才能调用,但是在
    login之后调用了 */
           YLSDKERR_NOT_IN_MEETING = 10,/** < 会议中的功能不能在无会议时使用 */
           YLSDKERR_ALREADY_IN_MEETING = 11,/** < 已经有一路会议时不能使用 */
           YLSDKERR_NOT_HOST = 12,/** < 会议中的特定功能,无主持人权限不能使用 */
           YLSDKERR_NOT_AUTHORITY = 13,/** < 会议中的特定功能,该账号无权限使用 */
           YLSDKERR_ACTION_INVALID = 14,/** < 会议中的特定场景下,该操作是非法的 */
           YLSDKERR_RECORD_STATE_INVALID = 15,/** < 会议中的录制功能,在当前状态下无
    法执行对应操作 */
           YLSDKERR_VIRTUALBG_NOT_SUPPORT = 16,/** < 计算机配置不符合背景虚化最低要
    求 */
           YLSDKERR_ALREADY_AUTHED = 17,/** < 该功能要求Auth之前或失败才能调用,但是
    在Auth成功之后调用了 */
    };
    
  8. 主要回调事件说明

    /**
    * sdk进程启动完成的通知
    */
    yealink.SetCallBackFor_AuthService_onSDKReadyEvent(() => { 
       console.log('🚀 SetCallBackFor_AuthService_onSDKReadyEvent');
    });
    
    /**
    * 鉴权完成的通知
    */
    yealink.SetCallBackFor_AuthService_onAuthResultEvent(() => { 
       console.log('🚀 SetCallBackFor_AuthService_onAuthResultEvent');
    });
    
    /**
    * 登录结果的通知
    **
    eAccountState 账号状态
    * 0 未登录状态
    * 1 登录中状态
    * 2 登录成功状态
    **
    dataAccountInfo 账号信息
    */
    yealink.SetCallBackFor_AuthService_onLoginResultEvent((eAccountState,
    dataAccountInfo) => {
       console.log('🚀 SetCallBackFor_AuthService_onLoginResultEvent');
       console.log('eAccountState: ', eAccountState, '\n dataAccountInfo: ',
                   dataAccountInfo);
    });
    
    /**
    * 登录失败或登出结果的通知
    **
    eAccountState 账号状态
    **
    dataAccountInfo 账号信息
    */
    yealink.SetCallBackFor_AuthService_onLogoutEvent((eAccountState,
                                                     dataAccountInfo) => {
       console.log('🚀 SetCallBackFor_AuthService_onLogoutEvent');
       console.log('eAccountState: ', eAccountState, '\n dataAccountInfo: ',
                   dataAccountInfo);
    });
    
    /**
    * 会议状态变化时的通知
    * eMeetingState
    * 0 空闲状态
    * 1 鉴权中
    * 2 正在加入会议
    * 3 已经在会议中
    */
    yealink.SetCallBackFor_MeetingService_onMeetingStatusChangedEvent((eMee
    tingState) => { 
       console.log('🚀 eMeetingState: ', eMeetingState);
    });
    
    /**
    * 会议结束的通知
    * eMeetingFinishReason: 会议结束的原因码
    * nCode: 当原因码为其他错误时,根据nCode查询更详细的会议结束原因
    */
    yealink.SetCallBackFor_MeetingService_onMeetingFinishReasonEvent((eMeet
    ingFinishReason, nCode) => {
       console.log('🚀 eMeetingFinishReason: ', eMeetingFinishReason, '\n
    nCode: ', nCode);
    });
    

API说明

具体接口说明、通知回调等可通过查看 ylsdk_windows_c.zip / ylsdk_macos_c.zip 下 ylsdk_h 文件夹中头文件了解

cloud_electron_quickguide_6

Electron SDK 更新

在 ylsdk_windows_c.zip / ylsdk_macos_c.zip 版本更新时,需要将 ylsdk_windows_c.zip / ylsdk_macos_c.zip 中的 ylsdk 文件夹复制到集成工 程中对应的 SDK win/mac 文件进行覆盖

本页目录