最近根据项目需求,需要实现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为进入的房间名,不同房间的用户无法互相