Files
汉秋 a04168cf30 新增运营区域与飞手认证模块,并完善直播推流就绪流程
将运营区域与飞手认证从首页占位页迁移为完整模块,扩展 Live 播放与推流就绪流程,并新增飞手证书 OSS 上传。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-25 18:15:59 +08:00

2.4 KiB
Raw Permalink Blame History

直播模块

模块职责

Features/Live 承接首页 live_stream_managementlive_album 权限入口,负责手动直播管理和直播相册素材管理。旧 iOS 工程未接入真推流 SDK本模块按旧 iOS 对齐,不新增腾讯 TRTC、RTMP 或其他推流 SDK 依赖。

代码结构

  • LiveAPI:封装 /api/app/manual-live/.../api/app/view-album/... 接口。
  • LiveManagementViewModel:管理直播列表分页、创建、开始/暂停、结束和详情失败清理。
  • LivePlaybackViewModel:管理直播详情和直播相册视频的系统播放器 URL、播放、暂停和释放状态。
  • LivePushReadinessViewModel:诊断直播推流地址、相机/麦克风权限、网络状态和当前推流 SDK 接入状态,不触发本机采集推流。
  • LiveAlbumViewModel:管理直播相册日期筛选、分页和删除相册。
  • LiveAlbumCreateViewModel:管理本地图片/视频上传到 OSS 后创建直播相册。
  • LiveAlbumPreviewViewModel:进入相册预览时加载相册详情,并支持删除单个素材。

业务边界

直播详情会从 play_urlpull_urlhls_urllive_urlflv_url 中筛选系统播放器可处理的 http/https 播放地址;push_url 是给 OBS 或第三方工具使用的外部推流地址,不作为播放地址使用。只有 RTMP 推流地址时,页面展示封面、提示和复制入口。

直播相册视频预览使用系统 VideoPlayer 播放可支持的视频地址;图片仍使用 RemoteImage 展示。视频地址不可播放时,页面保留打开和复制原始 URL 的操作。

推流专项按旧 iOS 对齐,只保留诊断层和适配协议,默认 UnsupportedLivePushAdapter 明确提示未接入真推流 SDK不引入腾讯/TRTC、Agora、HaishinKit、Zego 或 Android youfun_control 的飞控/抓娃娃直播接口。直播详情的“开始/暂停/结束”和“推流模式”只调用 manual-live 业务接口,不启动本机摄像头、麦克风或后台推流。

后续若要接入真推流 SDK可参考 Android youfun_control 中腾讯 TRTC 的实现路线但需要单独确认后端房间参数、SDK 版本、真机权限、推流源和人工联调范围。

直播封面创建沿用旧 iOS 的 URL 输入。直播相册素材通过 PhotosPicker 选择后,使用 OSSUploadService.uploadAliveAlbumFile 上传到 live_albums/yyyyMMdd/scenicId/...,再把最终 URL 提交给创建相册接口。