Boom Electron SDK
简介
Boom Electron SDK 是一个基于 Electron 的桌面应用开发框架,提供了音视频会议、屏幕共享、白板等功能的集成解决方案。该 SDK 旨在简化开发者在 Electron 环境下构建高质量音视频应用的过程。
安装
前置条件
- Node.js 16.x 或更高版本
- npm 8.x 或更高版本
- Electron 18.x 或更高版本
安装方式
npm install @hysc/electron-sdk --save
或者使用 yarn:
yarn add @hysc/electron-sdk
快速开始
基本用法
const { app, BrowserWindow } = require('electron');
const { BoomUISDK, RoomWindow } = require('@hysc/electron-sdk');
const boomSDK = new BoomUISDK({
appId: 'YOUR_APP_ID',
userId: 'userId'
});
let mainWindow;
function createWindow() {
mainWindow = new BrowserWindow({
width: 960,
height: 655,
resizable: true,
webPreferences: {
nodeIntegration: true,
contextIsolation: false
}
});
mainWindow.loadURL('http://localhost:3000');
}
app.whenReady().then(() => {
createWindow();
BoomUISDK.getInstance({
appId: 'YOUR_APP_ID',
userId: 'userId'
}).initEvent();
});
会议功能
const roomWindow = new RoomWindow({
domain: 'http://your-meeting-url.com'
});
roomWindow.setBounds({
width: 960,
height: 655
});
roomWindow.close();
主要功能
RoomWindow 类
RoomWindow 类提供了会议窗口的创建和管理功能:
constructor({ domain }) | 创建会议窗口实例 |
setBounds(bounds, animate) | 设置窗口大小和位置 |
close() | 关闭会议窗口 |
isWindowShow() | 检查窗口是否显示 |
createChatWindow(opt) | 创建聊天窗口 |
createInviteWindow(opt) | 创建邀请窗口 |
createUsersWindow(opt) | 创建用户列表窗口 |
BoomUISDK 类
BoomUISDK 类提供了 SDK 的核心功能:
constructor(options) | 初始化 SDK |
init() | 初始化 SDK 资源 |
destroy() | 销毁 SDK 实例 |
注意事项
-
窗口大小调整:
- Electron 对窗口大小调整有一些隐含的限制
- 在调用
setBounds
方法前,确保窗口不处于最大化、最小化或全屏状态
- Windows 和 macOS 平台的窗口大小可能略有不同,建议使用
defaultWidth
和 defaultHeight
属性
-
资源清理:
- 在应用关闭前,确保调用
close()
方法清理所有资源
- 特别是 IPC 事件监听器和定时器,这些如果不清理可能导致内存泄漏
-
平台差异:
- Linux 平台上的透明窗口可能需要特殊处理
- macOS 和 Windows 平台的窗口行为有所不同
示例项目
您可以在 /electron-sample
目录下找到一个完整的示例项目,展示了如何集成和使用 Boom Electron SDK。
故障排除
常见问题
-
安装失败:
- 确保您有正确的 Node.js 和 npm 版本
- 检查网络连接,确保可以访问 npm 仓库
- 如果遇到
install.js
相关错误,请确保您的网络可以下载 ffmpeg 二进制文件
-
窗口无法调整大小:
- 检查是否设置了
resizable: true
- 确保窗口不处于最大化或全屏状态
-
IPC 通信问题:
- 确保
nodeIntegration: true
和 contextIsolation: false
- 检查 IPC 事件名称是否匹配
- 在应用关闭时正确清理所有 IPC 事件监听器
版本历史
- 1.0.1-1.0.5:初始版本,基础功能实现
- 1.0.6:
- 优化窗口管理
- 修复 IPC 事件监听器清理问题
- 添加 ffmpeg 下载进度显示
- 1.0.7:
- 修复窗口大小调整问题
- 改进 BoomUISDK 接口,添加 appId 和 userId 参数
- 优化 Linux 平台透明窗口支持
- 移除开发调试代码
许可证
Copyright © 2025 HYSC Technology Co., Ltd.