跳到主要内容

直播概述

使用 LiveStreamingAPI 接收已连接设备的实时相机输出。设备可能通过自身热点提供 RTSP 流、逐帧发送 JPEG 图像,或同时支持两种模式。

Animated workflow

设备直播生命周期

根据设备能力选择传输方式,协调设备与播放资源,并通过 finish 回调处理会话结束。

宿主 App

检查设备

确认设备已连接、已就绪并支持 LiveStreamingAPI。

宿主 App

选择传输方式

选择模式前读取 RTSP 和 JPEG 能力属性。

AIBuds

启动会话

请求所选直播模式并观察启动回调。

设备 + SDK

准备输入

RTSP 配置并加入设备热点;JPEG 等待图像帧数据。

设备 → 应用

接收媒体

使用 RTSP 地址或处理每个完整 JPEG 图像帧。

实时媒体
宿主 App

展示媒体

使用 AIBudsLiveStream 播放 RTSP,或将 JPEG 数据解码到图像视图。

宿主 App → 设备

停止会话

同时停止设备会话以及播放或展示资源。

最终回调

处理结束回调

区分用户主动停止与意外中断,并清理本地状态。

RTSP 和 JPEG 是两种可选输入模式。同一时间只启动一个设备直播会话。

功能概览

使用 AI 辅助实现

使用 AI 开发

让 AI 帮助实现此工作流

使用官方“从 AIBuds 传输实时媒体”技能,根据你的 App 完成实现。

请阅读并遵循 https://docs-aibuds.github.io/zh-Hans/skills/stream-aibuds-live-media,使用该技能在当前 iOS 项目中完成“从 AIBuds 传输实时媒体”,并验证结果。
查看官方技能

直播模式

模式能力媒体传输宿主展示
RTSPsupportsRTSPLiveStreamingSDK 协调设备热点并返回一个 rtsp:// 地址。使用 AIBudsLiveStream 或其他兼容的 RTSP 播放器。
JPEGsupportsJPEGImageLiveStreamingSDK 会为每个收到的图像调用 JPEG 数据处理器。解码每个完整的 Data / NSData 值并更新 UI。

Framework 职责

  • AIBuds.xcframework 提供面向设备的 LiveStreamingAPI、能力属性、会话回调和 RTSPStreamParams 集成。
  • AIBudsFoundation.xcframework 定义 RTSPStreamParams
  • AIBudsLiveStream.xcframework 提供可选的 RTSP 播放和 RTSP 转 RTMP 转发 API。启动设备流不会自动创建播放器或推流器。

最佳实践

  1. 启动前检查对应模式的能力属性。
  2. 将 UI 状态与各个中间回调分离;只有 start 和 finish handler 描述会话级状态。
  3. 将 UIKit 操作派发到主队列。
  4. 停止设备会话时,同时停止播放或转发资源。
  5. 将热点丢失和非用户触发的会话终止视为可恢复失败,而不是成功停止。

注意事项

  • 公开 API 没有提供 isLiveStreaming 状态属性;请在本地维护展示状态,并根据回调及时更新。
  • RTSP 使用 Wi-Fi 热点流程,可能暂时改变 iPhone 的网络路径。
  • JPEG 模式提供压缩图像,而不是已经解码的视频帧对象。
  • Demo 中的 RTMP 推流是可选的 AIBudsLiveStream.LiveStreamer 流程,并非由 LiveStreamingAPI 自身执行。