Gif 说明:左下角的黑屏是由于使用了Mac模拟器,无法启用摄像头。Gif演示了一系列无限的镜像。
Gif demonstration: In iOS simulator, we can not open camera. Gif shows infinite mirror images.
- Use WebRTC to bulid a real time video chat.
- Directly download in this page or git clone the all project.
- Xcode 7.0 or higher
- iOS 8.0 or higher
- Most are in ARC
Excuse my English.
Maybe you can get sth from my blog: 如何使用WebRTC实现视频聊天.
Any fork, issues or pull requests are welcome. Let's improve together and help to make this repo better.
核心代码源自半年前的一个项目,现加以分享,会持续修改,以确保代码整洁高效。我必须坦言:现有的部分代码存在质量问题。
- 通过使用WebRTC来实现实时视频聊天。
- 完整的RTC需要服务器端的支持,且需要考虑跨安卓和iOS平台。本Demo属于iOS版,服务器版请见这里:webrtc简易版demo。
- 本Demo主要目的用于教学和知识分享,并非用于商业产品,请务必注意。
- 欢迎一切fork,issue,pull request来帮助该项目做得更好。
- 本页面直接点击绿色下载按钮。或者使用 git clone 整个项目。
- 下载完成后,建议查看ViewController.m以快速熟悉用法。
- 可以使用模拟器,但完整的功能展示需要至少两台真机。
- Xcode 7.0或者更高,Demo在编写时使用的是Xcode 7.3。
- iOS 8.0或者更高,Demo测试真机使用了iOS10.1.1 IPhone6,iOS9.3.5 iPhone5,以及iOS 10.1 iPad4。
- 核心模块采用ARC。
具体可见Demo中ViewController.m用法。详细讲解可见博客如何使用WebRTC实现视频聊天。
简要思路是:
- 双方需要向服务器上报一个session ID,以唯一区分不同的用户。
- 双方类似于打电话,角色分为会话主动发起方:offer。以及被动接听方:answer。
- 通过使用对方的ID,offer方需要主动call answer方。
- 会话过程中,一旦挂断此次会话便宣告结束。下次可以重新call。
- 在视频界面,可以随时切换前后摄像头,以方便拍摄自己需要的内容。
- 屏幕上会同时出现自己以及对方的视频图像。主屏幕区域是对方拍摄的图像(remote view),左下角小镜头是自己拍摄的图像(local view)。
欢迎提出任何改进意见和建议,共同学习,把项目做得更好。