直播概述
使用 LiveStreamingAPI 接收已连接设备的实时相机输出。设备可能通过自身热点提供 RTSP 流、逐帧发送 JPEG 图像,或同时支持两种模式。
Animated workflow
设备直播生命周期
根据设备能力选择传输方式,协调设备与播放资源,并通过 finish 回调处理会话结束。
功能概览
RTSP 直播
启动设备 RTSP 会话、加入设备热点并播放返回的视频流
JPEG 图像直播
接收并展示已连接设备发送的连续 JPEG 图像
停止直播
停止活动的设备直播会话并释放展示资源
使用 AI 辅助实现
使用 AI 开发
让 AI 帮助实现此工作流
使用官方“从 AIBuds 传输实时媒体”技能,根据你的 App 完成实现。
请阅读并遵循 https://docs-aibuds.github.io/zh-Hans/skills/stream-aibuds-live-media,使用该技能在当前 iOS 项目中完成“从 AIBuds 传输实时媒体”,并验证结果。直播模式
| 模式 | 能力 | 媒体传输 | 宿主展示 |
|---|---|---|---|
| RTSP | supportsRTSPLiveStreaming | SDK 协调设备热点并返回一个 rtsp:// 地址。 | 使用 AIBudsLiveStream 或其他兼容的 RTSP 播放器。 |
| JPEG | supportsJPEGImageLiveStreaming | SDK 会为每个收到的图像调用 JPEG 数据处理器。 | 解码每个完整的 Data / NSData 值并更新 UI。 |
Framework 职责
AIBuds.xcframework提供面向设备的LiveStreamingAPI、能力属性、会话回调和RTSPStreamParams集成。AIBudsFoundation.xcframework定义RTSPStreamParams。AIBudsLiveStream.xcframework提供可选的 RTSP 播放和 RTSP 转 RTMP 转发 API。启动设备流不会自动创建播放器或推流器。
最佳实践
- 启动前检查对应模式的能力属性。
- 将 UI 状态与各个中间回调分离;只有 start 和 finish handler 描述会话级状态。
- 将 UIKit 操作派发到主队列。
- 停止设备会话时,同时停止播放或转发资源。
- 将热点丢失和非用户触发的会话终止视为可恢复失败,而不是成功停止。
注意事项
- 公开 API 没有提供
isLiveStreaming状态属性;请在本地维护展示状态,并根据回调及时更新。 - RTSP 使用 Wi-Fi 热点流程,可能暂时改变 iPhone 的网络路径。
- JPEG 模式提供压缩图像,而不是已经解码的视频帧对象。
- Demo 中的 RTMP 推流是可选的
AIBudsLiveStream.LiveStreamer流程,并非由LiveStreamingAPI自身执行。