iOS 直播-實現后台錄音並推流


iOS 直播-實現后台錄音並推流


從一個月前開始開始接收公司的直播類app.到今天為止測試都已接近尾聲,但是產品哥哥加了一個要求,就是在app進入后台后也實時保證錄音並且推流.
剛聽到這個的時候我也是懵逼的,可是冷靜下來找資料,還是有所收獲的,在此分享一下.
對於我們的app要求后台也實時錄音並推流主要要注意兩點:

  • 保證app進入后台后實時錄音
  • 保證app進入后台后實時推流

1.設置應用為voip應用

打開 -info.plist文件,加入如下的key

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切入后台會發現屏幕頂部會有一條紅色條,然后用播放器播放會發現錄音與推流成功.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM