iOS 直播 實現後臺錄音並推流 從一個月前開始開始接收公司的直播類app.到今天為止測試都已接近尾聲,但是產品哥哥加了一個要求,就是在app進入後臺後也實時保證錄音並且推流. 剛聽到這個的時候我也是懵逼的,可是冷靜下來找資料,還是有所收穫的,在此分享一下. 對於我們的app要求後臺也實時錄音並推流 ...
iOS 直播-實現後臺錄音並推流
從一個月前開始開始接收公司的直播類app.到今天為止測試都已接近尾聲,但是產品哥哥加了一個要求,就是在app進入後臺後也實時保證錄音並且推流.
剛聽到這個的時候我也是懵逼的,可是冷靜下來找資料,還是有所收穫的,在此分享一下.
對於我們的app要求後臺也實時錄音並推流主要要註意兩點:
- 保證app進入後臺後實時錄音
- 保證app進入後臺後實時推流
1.設置應用為voip應用
打開
Required background modes,追加
//保證app進入後臺後實時錄音
App plays audio or streams audio/video using AirPlay
//保證app進入後臺後實時推流
App provides Voice over IP services
2.將socket設置成非同步模式,並將socket設置成VOIP類的,以便系統能夠托管它。
CFStreamCreatePairWithSocket(NULL, (CFSocketNativeHandle)(mosq->sock), &readStream, NULL);
//保證不關閉原來的socket
CFReadStreamSetProperty(readStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanFalse);
//設置成voip socket
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
3.安裝keepAliveTimeout handler,讓系統每隔一段時間重新建立連接
UIApplication *application = [UIApplication sharedApplication];
[application setKeepAliveTimeout:600 handler:^{
[self reconnect];
}];
到這裡command + R 運行程式,開始直播然後將app切入後臺會發現屏幕頂部會有一條紅色條,然後用播放器播放會發現錄音與推流成功.