SuperAPI AI 工具集

webrtc-ios-integration

通用与其它

查看项目

更新于 10-15 21:51

技能介绍

用途:为 iOS 应用集成 WebRTC 提供基于仓库源码的指导,适用于处理 iOS WebRTC、RTCPeerConnection、信令、媒体、音频、渲染、线程、数据通道、安全、诊断或测试等任务。涉及 Objective-C SDK 或示例应用行为时,应先查阅仓库源码,不要凭通用 WebRTC 记忆作答。默认集成方应用代码为 Swift,仅在验证导出 API 行为时对照 Obj-C SDK 头文件。构建、打包、分发与发布产物不在范围内,除非用户主动要求。

主要能力与使用方式:按集成领域只读取最窄匹配的参考文件后再建议或编辑,跨领域时才增加引用。架构见 references/architecture.md;设置、信令、协商、媒体收发与清理见 references/usage-flows.md;采集、渲染、音频会话与 CallKit 见 references/media-audio-ui.md;线程、Swift 桥接、编解码、RTP、数据通道与安全见 references/best-practices.md;并发与队列见 references/threading-swift.md;日志、统计、测试与排查见 references/diagnostics-testing.md;按任务定位源文件见 references/repo-guide.md。优先阅读 sdk/objc/api、sdk/objc/base、sdk/objc/components 下的公开头文件,应用示例以 examples/objc/AppRTCMobile 为流程参考,不作为生产架构照搬。回答中应指明检查过的仓库文件,并将建议标注为公开 API、示例模式、分支特有接口或 WebRTC 内部实现。

硬性规则:不依赖 WebRTC 内部实现,除非用户修改 WebRTC 本身;优先 Unified Plan(RTCConfiguration.sdpSemantics = RTCSdpSemanticsUnifiedPlan);默认 WebRTC 回调不在主线程,UI 与应用状态更新需显式派发;通过 RTCAudioSession 配置 AVAudioSession,使用 lockForConfiguration 与 unlockForConfiguration;RTCPeerConnection 操作在应用自有调用队列或 actor 上串行化,不在委托回调中直接调用;视频采集器附加到 RTCVideoSource,渲染器附加到 RTCVideoTrack;新代码避免使用已废弃 API;如需 field trials 或 metrics,应在任何其他 WebRTC 调用前初始化;不把 AppRTCMobile 的房间服务器、WebSocket 通道或设置模型当作生产依赖。

适用场景与限制:适用于新 iOS 集成与现有代码排错,典型流程为创建 RTCPeerConnectionFactory、配置 RTCConfiguration、创建带委托的 RTCPeerConnection、添加轨道或传输、经信令交换 SDP 与 ICE 候选、采集帧送入 RTCVideoSource、将远端轨道附加到渲染器、统一走 RTCAudioSession,挂断时停止采集、分离渲染器、关闭连接并释放引用。构建发布、具体价格与平台限制资料未提供。