文章也同时在个人博客 http://kimihe.com/更新
引言
昨天和同学闲聊,发现半年前的一个项目中的一些东西可以拿出来分享,是关于利用WebRtc实现视频聊天的,故今天温习了一下陈旧的代码(不忍直视),略加修改后,通过此文予以阐述。
项目地址
RTC_FaceChat
欢迎一切fork,issue,pull request来帮助该项目做得更好。
效果演示
Gif 演示了一系列无限镜像,画面左下角的黑屏是由于使用了iOS模拟器,无法启用摄像头,正常情况下它应该显示自己拍摄的图像,而主屏幕是对方拍摄的图像。
无限镜像使用
具体可见Demo中ViewController.m用法。
简要思路是:
- 双方需要向服务器上报一个session ID,以唯一区分不同的用户。
- 双方类似于打电话,角色分为会话主动发起方:offer。以及被动接听方:answer。
- 通过使用对方的ID,offer方需要主动call answer方。
- 会话过程中,一旦挂断此次会话便宣告结束。下次可以重新call。
- 在视频界面,可以随时切换前后摄像头,以方便拍摄自己需要的内容。
- 屏幕上会同时出现自己以及对方的视频图像。主屏幕区域是对方拍摄的图像(remote view),左下角小镜头是自己拍摄的图像(local view)。
而更加具体的原理可以深入查阅KMFaceChatRTC -> KMFaceChat_RTC -> KMRTCCore -> RTCLib -> ARDAppClient类。
总结
本文主要是给出一个实际可用的视频聊天Demo,以期帮助大家实现快速开发。陈旧的代码总是无法直视,后续会继续更新。
更多iOS的知识,请继续关注后续的文章,感谢阅读!
微信公众号
第一时间获取最新内容,欢迎关注微信公众号:「洛斯里克的大书库」。
微信公众号「洛斯里克的大书库」
网友评论