日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS实现Voip应用后台运行需要的几个配置项

發布時間:2023/12/9 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS实现Voip应用后台运行需要的几个配置项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自出處:http://blog.csdn.net/wzzvictory/article/details/8815590


IOS實現Voip應用后臺運行需要的幾個配置項

作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/8815590 轉載請注明出處 如果覺得文章對你有所幫助,請通過留言或關注微信公眾帳號wangzzstrive來支持我,謝謝!
voip類的app允許用戶使用Internet網絡而不是手機的蜂窩網絡打電話,因此這一類的app需要保持同它相關的服務的網絡連接,用以厚道來電消息和其他數據。IOS系統不是通過一直讓app處于激活狀態來達到這個目的,而是同樣也會將這類的app掛起,但同時會在app被掛起期間接管它的sockets,當這個sockets有數據通信時,系統會再次喚醒處于掛起狀態的app,同時將sockets的控制權交還給app,以讓其正常的處理來去電事件和其他數據。

一、一個voip應用需要有下面幾個要求:

1、在Info.plist中增加UIBackgroundModes鍵,并將值設為voip;

2、為該app配置sockets,并注冊到系統上,以便app切到后臺時系統會接管這個sockets;

3、在app切到后臺之前,要調用setKeepAliveTimeout:handler:方法來注冊一個周期性執行的handler,用于保持app和服務器的連接;

4、配置一個音頻會話(audio session)。

二、UIBackgroundModes鍵的voip值有三個功能:

1、告知系統在app切到后臺的時候接管它的sockets;

2、這個鍵值的另外一個功能是允許app在后臺播放音頻,跟UIBackgroundModes的audio值起到的作用相同。

3、后臺狀態的app在系統確定voip服務可用的時候會立即重新加載(relaunched)

三、配置keep-alive handler

一個voip類的app需要周期性的被喚醒以防止失去跟服務器的連接。為了達到這個目的,IOS系統允許我們通過setKeepAliveTimeout:handler:方法來實現保持連接。通常我們都在軟件切到后臺以后,也就是在applicationDidEnterBackground:才需要實現保持連接的方法。Handler配置完后,系統會根據需要在time out設置的時間到期之前喚醒處于掛起狀態的app,至少被調用一次handler中的方法。

1、 handler

需要說明的是,這個handler在后臺執行的時候需要盡可能快的返回,因為系統只給了最多10s的時間去執行它。如果10s內沒有執行完,而且沒有去申請額外的執行時間,系統將會吧app掛起。

2、timeout

設置handler時,需要指定app需要的最大超時時間。IOS系統允許的最小值是600s,如果想設置個小點的值,handler的設置就會失敗。系統在執行handler內容的時候,只保證超時時間到之前會執行,而不保證準確的執行時間點,系統是會根據當時的任務情況等系統條件確定一個合適的時間點,已達到延長電池壽命的目的。

總結

以上是生活随笔為你收集整理的IOS实现Voip应用后台运行需要的几个配置项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。