iOS端实现WebRTC跨平台音视频通话

    最近根据项目需求,需要实现1对1视频通话,度娘一下很多例子,以为会一帆风顺,但是。。。

只能根据网上Demo自己就行修改和优化,话不多说直接附上WebRTC_Demo网盘地址提取码: yhy3

说明:

1、本Demo是根据WebRTC-ios 跨平台音视频通话博主的基础上进行了修改和优化,感谢!

2、服务端使用webrtc_server_node,内置网页版,其中有该博主实现的安卓端Demo,感谢!

搭建过程:


第一步:下载iOS端Demo,仅需要修改ChatViewController.m中的:

[[WebRTCHelper sharedInstance] connectServer:@"服务器的ip" port:@"3000" room:@"100"];

port为端口号,默认3000;room:为房间号,不同房间的用户无法互相,具体可以查看服务端说明

第二步:下载服务端webrtc_server_node,如何运行文档中都有说明,需要node和npm环境即可。

需要说明的是iOS的Demo中,为了快速测试并没有搭建服务端说明的coturn穿透服务器,我使用了谷歌提供的。

请根据需求自己搭建,搭建完成后需要修改服务端文件:\webrtc_server_node\public\dist\js\SkyRTC-client.js,第18行iceServer的配置,配置上url、账号、密码即可

注意:因为谷歌限制,想要调用最新的WebRTC库播放视频,需要实现https,本地测试解决办法如下:

1、修改服务端文件:\webrtc_server_node\public\dist\js\conn.js,最后一行如下:

rtc.connect("ws:" + window.location.href.substring(window.location.protocol.length).split('#')[0], window.location.hash.slice(1)); 

2、网页版使用最新版Google Chrome进行测试,对浏览器进行如下配置后即可不用配置https和wss的代理进行视频录制和播放:

①导航栏输入:chrome://flags/#unsafely-treat-insecure-origin-as-secure

②添加服务器的地址

③改为“Enabled”

④重启浏览器即可

⑤服务器运行起来后,浏览器访问localhost:3000/#roomName查看效果,其中roomName为进入的房间名,不同房间的用户无法互相

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容