安卓的视频通讯

常见视频通讯架构

  • 用 HTTP 做业务接口、WebSocket 做信令通道,传递通话控制指令;
  • 通过 SDP 协商音视频参数(编码、码率等),确保双方格式匹配;
  • 基于 ICE 机制,用 STUN 做 P2P 穿透、TURN 做中转兜底,解决跨网 / 防火墙的连通问题;

具体实施方法

  • 集成 WebRTC 框架(安卓常用官方 WebRTC SDK);
  • 初始化 PeerConnection(配置 STUN/TURN 公网地址);
  • 采集音视频(Camera/Microphone),创建 MediaStream;
  • 生成 SDP Offer/Answer,通过 WebSocket 传递;
  • 收集并传递 ICE 候选地址;
  • 监听连接状态,成功后渲染音视频,失败则切换 TURN 中转。

为什么需要STUN

不管是 WiFi 还是移动 4G/5G,手机绝大多数都处在内网环境中,本身没有公网 IP。公网 IP 都在网关设备上(家庭路由器、运营商核心网关),同一公网 IP 下会挂大量设备,靠不同端口来区分每一台设备。所以手机必须通过 STUN 服务器,才能获取自己在外网的真实地址(公网 IP + 端口),进而实现跨网的 P2P 音视频通讯。

  • 核心原因:手机的公网 IP 属于网关,手机本地仅能获取内网 IP,需外部公网服务(STUN)告知;
  • STUN 原理:通过手机向 STUN 发数据包,STUN 识别数据包的公网来源地址并返回;
  • 关键价值:STUN 拿到的公网 IP + 端口是 P2P 音视频通话的前提,没有这个地址,两台公网手机永远找不到对方。
相关推荐
DogDaoDao4 小时前
Android 硬件编码器参数完全指南:MediaCodec 深度解析
android·音视频·视频编解码·h264·硬编码·视频直播·mediacodec
JohnnyDeng945 小时前
Android 自定义 View:Canvas 绘图与事件分发深度解析
android
音视频牛哥5 小时前
大牛直播SDK(SmartMediaKit)Windows平台RTSP/RTMP直播播放SDK集成说明(C#版)
音视频·低延迟rtsp播放器·windows rtsp播放器·windows rtmp播放器·低延迟rtmp播放器·c# rtsp播放器·c# rtmp播放器
薛定猫AI8 小时前
【深度解析】Gemini Omni 多模态生成与 Agent 化创作工作流:从视频编辑到 UI 生成的技术演进
人工智能·ui·音视频
Android小码家8 小时前
Framework之Launcher小窗开发
android·framework·虚拟屏·小窗
赏金术士8 小时前
第七章:状态管理实战与架构总结
android·ui·kotlin·compose
颂love9 小时前
MySQL的执行流程
android·数据库·mysql
云起SAAS14 小时前
抖音小游戏源码 - 消消乐 | 含激励广告+成就系统 | 开箱即用商业级消除游戏模板
android·游戏·广告联盟·看激励广告联盟流量主·抖音小游戏源码 - 消消乐
大貔貅喝啤酒15 小时前
基于Windows下载安装Android Studio 3.3.2版本教程(2026详细图文版)
android·java·windows·android studio
程序员码歌15 小时前
OpenSpec 到 Superpowers:AI 编码从说清到做对
android·前端·人工智能