NXKit 是服务于 Neukol Class App 的实时音视频 SDK,采用自研 udp 协议来实现数据传输,支持多人在课堂中实时音视频通信。
主要工作:
- 基于 RPScreenRecorder, 实现应用内屏幕录制,将录制数据保存为本地 flv 文件,用于后续云端录制的修复。
- 定制 ijkplayer, 集成 soundtouch, 支持变速不变调。提供接口,将 ijkplayer 的播放声音抽出来给 SDK 做混音。
- NXKit 的其他维护(log 模块优化,build 脚本优化,bug 修复)
NXWhiteboard 是服务于 Neukol Class App 的实时互动白板 SDK。支持涂鸦,文字,图片,图形等的绘制和操作,支持 ppt, pdf 等课件展示和操作。
主要工作:
- 添加尺规工具(直尺,三角板,量角器,圆规)套件,支持直线,圆弧等的绘制
- 提供接口,支持白板内容导出为 pdf 或 多张图片。
- 白板框选策略切换,元素选择由完全包含改为选择矩形跟元素相交即可选中,同步更新单个元素和组合元素的选择样式。
TSRtcSDK 是一款全平台的实时音视频直播SDK。我负责 iOS/macOS平台研发和维护工作, 保证 TSRtc 在 iOS/macOS 上的稳定,流畅,低延时的直播音视频体验。
TSRtcSDK 采用分层设计,核心层为通用 C++ SDK, 各个平台基于 C++ SDK 封装,
iOS/macOS 平台基于 C++ SDK 提供了Objective-C 版本的 SDK。
主要工作:
- 给 C++ 层提供平台相关功能的支持(音视频采集播放,编解码,网络,日志,写文件),导出为 C++ 接口, 采用 Objective-C 和 C++ 混编的方式。
- 使用 AduioToolBox 中 AudioUnit 和 AUGraph 实现实时的音频采集和播放功能,使用 Opus来编解码音频数据。
- 使用 AVCaptureSession 采集 YUV 数据,使用 FFmpeg + VideoToolBox 同时支持软件和硬件编解码 H264 ,使用 Metal 渲染解码后的视频帧。
- 采用 CMake 来组织和管理平台层和 C++ 层代码 以及 SDK 构建过程, 提供 shell 脚本,自动化构建和分发 SDK。
- iOS/macOS 平台接口设计,文档输出,CocoaPods 发布 SDK。
- 提供并维护测试 App 程序,方便对 SDK 进行源码调试, 使用 Instruments 对 SDK 进行内存分析,性能优化,修复内存泄漏,崩溃问题。