最近智能硬件(IPC摄像机、智能门铃、智能猫眼、宠物机器人、陪护机器人、带屏可视音箱、带屏台灯等等)与微信/小程序视频通话的功能火起来了,视乎传统硬件终于开始走出了向WebRTC突破的一步,相信未来WebRTC在C端硬件上,将会独领一档存在。
之前我们也描述过,微信或者小程序与智能硬件的通话主要的优势就是利用了微信在手机中的霸主地位,无论是App的安装普及程度,还是实时推送的到达率,都是top级别的,用户只需要做好硬件侧和应用侧的开发,无需过多关注底层推送接口的事情。
实际,微信小程序与智能硬件之间的VoIP,而且是p2p的VoIP,可以说有且只有一条路,那就是WebRTC,微信以及小程序实际内核就是H5或者说Chromium,要支持视频通话,而且是p2p的视频通话,必须满足WebRTC的协议要求,要么还有一种方案,那就是WASM,不过不大可能,因为WASM在兼容性以及效率上,完全跟WebRTC没法比,所以,做好WebRTC就能实现智能硬件与微信小程序的p2p视频通话VoIP应用。
之前我们也说过这其中的难点,最大的技术难点不是在微信小程序这一端,因为这一端的视频通话技术已经很常见了,而且是在小程序的框框里面开发,没什么门槛;最大的技术难点是在智能硬件端:
- WebRTC的封装;
- 嵌入式WebRTC的移植;
这一块目前国内做的厂家并不多,做的好的就更少了,EasyRTC是其中的一个,我们可以看看EasyRTC的接口封装:
RTC_C_EXPORT STATUS EasyRTC_initWebRtc(VOID);
RTC_C_EXPORT STATUS EasyRTC_deinitWebRtc(VOID);
RTC_C_EXPORT STATUS EasyRTC_createRtcCertificate(PRtcCertificate *ppRtcCertificate);
RTC_C_EXPORT STATUS EasyRTC_freeRtcCertificate(PRtcCertificate pRtcCertificate);
RTC_C_EXPORT int EasyRTC_startSignalingClient(SIGNALINGCLIENT_MESSAGERECEIVED_CALLBACK SignalingClientMessageReceivedCallback, SIGNALINGCLIENT_STATECHANGED_CALLBACK SignalingClientStateChangedCallback, uint64_t customData);
RTC_C_EXPORT int EasyRTC_loginUser(char *myid, char *mysn, char *mykey, char *extradata0, int extradatalen0, char *extradata1, int extradatalen1);
RTC_C_EXPORT int EasyRTC_connectUser(