Felo 会议

Felo 会议

一个面向海外市场的在线会议平台,主要特色功能包括文档协作、妙计总结与实时字幕

  • 项目类型:网站
  • 项目所属:企业
  • 担任角色:协作者
  • 技术栈:React、Vite、Antd、TypeScript、WebRTC、MQTT
  • 创建日期:2022-07-18
  • 维护情况:正常

项目亮点

  • 会前支持文档在线协作
  • 会中支持录制秒记、屏幕共享、聊天室、实时字幕
  • 会后支持妙计生成会议总结

我在项目负责过什么

  • 音视频设备授权管理

    • 兼容多个平台的设备信息检测
    • 回调返回设备变更情况,提供降级设备
    • 根据检测结果提供对应的操作引导提示(系统权限/浏览器权限)
  • 实时字幕相关功能(业务层)

    • 接口连接失败的超时检测与自动重试
    • 高频重新渲染下的事件性能优化
    • 等等
  • 组件设计与性能调优

    • 使用原始 DOM 操作编写拖拽面板功能,不通过 React 渲染
    • 分割代码按需加载优化首屏展示速度
    • 优化打包大小,解决依赖被全量打包的问题
  • 新版本的 UI 迭代,高质量还原设计,持续性提供 UX 建议
  • 使用 Zustand 状态管理,减少组件重绘,提高使用性能
  • 探索各种奇怪的 Bug 并给予修复

    • 业务逻辑问题
    • iOS 默认使用听筒而不是扬声器播放音源
    • 等等

有哪些值得介绍的经历

iOS 关于音视频相关的坑太多了,iOS 15 获取音频流时,如果有多次调用,则会强制释放掉第一次获取的流。iOS 16.1 还会概率性没声音,其扬声器切换机制更是离谱,一旦开始使用音频流,播放任何声音的音量都会被缩小,且没有效方法控制这个行为。这些奇怪的操作完全由系统调度,页面完全没资格调整。

在 Safari 浏览器上,有部分接口(剪贴板、获取屏幕共享视频流等)存在安全保护,不允许“非用户触发”的情况,如果使用了异步获取数据后再调用,则会遭到浏览器禁止。

截图截图
奇趣音乐盒技术源于 Kico Player
Emmm,这里是歌词君