Files
suixinkan_ios_new/suixinkan/Features/Live/Live.md
汉秋 41dda3cc9b Add OperatingArea and PilotCertification modules with live push readiness.
Migrate operating area and pilot certification from home placeholders, extend Live with playback and push readiness flows, and add pilot certificate OSS upload.

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

2.4 KiB
Raw 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 提交给创建相册接口。