1. iOS 平台(Objective-C, Swift, SwiftUI) 原生开发能力
2. 使用 C++ 进行跨平台开发的能力
3. 音视频相关技能,iOS 平台音视频采集编解码播放渲染等,AudioToolbox,VideoToolbox,H.264, AAC, Opus, FFmpeg,WebRTC, OpenGL, Metal等
4. SDK 构建能力,熟悉 SDK 构建,测试,打包等
5. 自动化构建能力,熟悉 shell 脚本,jenkins,fastlane 等
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 进行内存分析,性能优化,修复内存泄漏,崩溃问题。
采用用 SwiftUI 编写,展示当前的实时海拔,气压,日出日落时间,支持拍摄保存带水印的照片和视频,视频拍摄后可以根据选定时长进行裁剪。 技术点: - AVCaptureSession 音视频采集 - AVAssetWriter 将音视频保存为 mp4 - CIFilt
Neukol是一款基于培训场景打造的专业直播互动工具,提供完整的在线互动培训解决方案,Neukol 真实还原并超越线下培训场景,具备高稳定、超高清、超低延迟、高保真声音等特点,满足在线培训、职业培训、企业培训等多场景高质量的培训需求。 主要特性: 【高稳定】音频丟包80%仍享