最近公司的设计APP中,集成进去了VOIP的功能,今天我就在IOS上集成VOIP功能,简单述说一下:
1、首先加入pushkit的功能包。
2、申请一个VOIPPush的证书,服务器要通过这个证书,才能给客户端推送VOIP消息,看官方解释,应该1s能到,具体参考官方的pushKit文档。
3、启动voip推送功能。
4、打开后台运行voip,
以上功能,只是做离线VOIP的一些常用功能,稍微有点经验的人,都可以搞定!
其实我在VOIP遇到的主要的坑,是这样的,
当启用Voice over IP 功能后,当APP进入后台后,就会一直在后台跑,知道系统通知你,资源用完了,当再次打开APP的时候,先Crash一次,抓到的日志如下:
Exception Type: EXC_RESOURCE
Exception Subtype: CPU_FATAL
Exception Message: (Limit 80%) Observed 97% over 60 secs
想要解决这个问题,主要的思路,就是把VOIP的那条TCP,标志上VOIP的标记,其他不变。
由于多数的voip通讯协议是C++编写的,想要在不修改原来socket代码的基础上,标上标志,需要把socket 的 句柄 抛出来,执行以下代码:

在iOS应用中集成VOIP功能时,遇到APP后台运行导致的CPU资源过度使用问题,引发EXC_RESOURCE错误。日志显示CPU使用超过97%,超过60秒限制。解决思路是在不修改原始C++通讯协议代码的情况下,为VOIP的TCP连接打上标记,确保系统识别其为VOIP服务,从而避免被系统强制关闭。

329

被折叠的 条评论
为什么被折叠?



