如何使用WebRTC实现视频聊天

文章也同时在简书更新

引言

昨天和同学闲聊,发现半年前的一个项目中的一些东西可以拿出来分享,是关于利用WebRtc实现视频聊天的,故今天温习了一下陈旧的代码(不忍直视),略加修改后,通过此文予以阐述。

项目地址

RTC_FaceChat
欢迎一切fork,issue,pull request来帮助该项目做得更好。

效果演示

Gif演示了一系列无限镜像。画面中左下角的黑屏是由于使用了iOS模拟器,无法启用摄像头,正常情况下它应该显示自己拍摄的图像,而主屏幕是对方拍摄的图像。


faceChat4.gif

使用

具体可见Demo中ViewController.m用法。
简要思路是:

  • 双方需要向服务器上报一个session ID,以唯一区分不同的用户。
  • 双方类似于打电话,角色分为会话主动发起方:offer。以及被动接听方:answer
  • 通过使用对方的ID,offer方需要主动call answer方。
  • 会话过程中,一旦挂断此次会话便宣告结束。下次可以重新call。
  • 在视频界面,可以随时切换前后摄像头,以方便拍摄自己需要的内容。
  • 屏幕上会同时出现自己以及对方的视频图像。主屏幕区域是对方拍摄的图像(remote view),左下角小镜头是自己拍摄的图像(local view)

而更加具体的原理可以深入查阅KMFaceChatRTC -> KMFaceChat_RTC -> KMRTCCore -> RTCLib -> ARDAppClient类

总结

本文主要是给出一个实际可用的视频聊天Demo,以期帮助大家实现快速开发。陈旧的代码总是无法直视,后续会继续更新。

更多iOS的知识,请继续关注后续的文章,感谢阅读!

微信公众号

第一时间获取最新内容,欢迎关注微信公众号:「洛斯里克的大书库」。
微信公众号「洛斯里克的大书库」

周鶏🐣(Kimiko) wechat
拿起手机扫一扫,欢迎关注我的个人微信公众号:「洛斯里克的大书库」。
坚持原创技术分享,您的支持将鼓励我继续创作!