Qt / C++ 集成
接入层级
| 层级 | 用途 |
|---|---|
| C ABI | Win32、Cocoa 等宿主,handle-based 多实例接口 |
C++ DesktopSdk | C++17 门面,统一命令、事件与快照 |
Qt EduSdkQt | Qt 包装与 HostEffect 执行 |
EduSdk::UiQt | Qt Widgets 官方课堂界面 |
桌面 Adapter 执行原生媒体与白板操作。使用底层 C/C++ 接口时,宿主需实现后台 HTTP、IM、RTC 和白板的 HostEffect 处理。
平台和依赖
当前原生发行矩阵为 macOS arm64、macOS x86_64、Windows x86_64。macOS 按架构提供独立动态库包;完整 Qt 课堂暂无 Linux 发行入口。
Qt 示例要求 Python 3.9+、CMake 3.21+、Qt 6.5+,并依赖 Qt Network、Multimedia 等模块。CMake 下载并校验 DrawsKit Desktop 0.1.3。OpenIM 和 TRTC 使用对应系统的官方原生库。
macOS 源码示例
在 edu-sdks 根目录执行:
make build-desktop
./scripts/prepare-openim-desktop.sh
./scripts/prepare-qt-desktop.sh
cmake -S examples/desktop-qt -B build/desktop-qt
cmake --build build/desktop-qt
./build/desktop-qt/edusdk-desktop-qt-demo
启动页填写 sdk-api 地址、课堂 ID、用户 eduUserId 和用户 Token。也可由 EDUSDK_BACKEND_URL、EDUSDK_CLASSROOM_ID、EDUSDK_USER_ID、EDUSDK_USER_TOKEN 预填。默认非 Release 构建使用测试环境。
Windows 构建
先生成 Windows x64 的 EduSDK Core,并准备 OpenIM C SDK 和 TRTC Windows C++ SDK,再配置示例的 CMake 参数:
cmake -S examples/desktop-qt -B build/desktop-qt -A x64 `
-DOPENIM_SDK_ROOT=C:\sdk\openim\win64 `
-DTENCENT_TRTC_SDK_ROOT=C:\sdk\trtc\SDK\CPlusPlus\Win64
cmake --build build/desktop-qt --config Release
Windows 工程需链接对应的 OpenIM 和 TRTC 原生库,并在目标系统测试多人课堂。examples/desktop-cpp 使用 Mock HostEffect,仅用于接口和生命周期示例;音视频接入参考 examples/desktop-qt。
集成自己的工程时使用 platforms/desktop 与 ui/desktop/qt 的 CMake 定义,并参照 examples/desktop-qt 装配 HostEffect runner 与 Adapter。退出窗口需释放 UI、Provider 与 SDK 实例,避免仍在使用的动态库提前卸载。