iOS App進(jìn)入后臺(tái)后實(shí)時(shí)推流

對(duì)于我們的app要求后臺(tái)也實(shí)時(shí)錄音并推流主要要注意兩點(diǎn):
保證app進(jìn)入后臺(tái)后實(shí)時(shí)錄音 保證app進(jìn)入后臺(tái)后實(shí)時(shí)推流、或者藍(lán)牙語(yǔ)音數(shù)據(jù)交互

1.設(shè)置應(yīng)用為voip應(yīng)用

打開-info.plist文件,加入如下的key
Required background modes,追加
//保證app進(jìn)入后臺(tái)后實(shí)時(shí)錄音 App plays audio or streams audio/video using AirPlay
//保證app進(jìn)入后臺(tái)后實(shí)時(shí)推流 App provides Voice over IP services

2.將socket設(shè)置成異步模式,并將socket設(shè)置成VOIP類的,以便系統(tǒng)能夠托管它。

//保證不關(guān)閉原來(lái)的socket 
CFStreamCreatePairWithSocket(NULL, (CFSocketNativeHandle)(mosq->sock), &readStream, NULL); 
CFReadStreamSetProperty(readStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanFalse);  

//設(shè)置成voip socket
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);

3.安裝keepAliveTimeout handler,讓系統(tǒng)每隔一段時(shí)間重新建立連接

UIApplication *application = [UIApplication sharedApplication];
 [application setKeepAliveTimeout:600 handler:^{ [self reconnect]; }];

到這里始直播然后將app切入后臺(tái)會(huì)發(fā)現(xiàn)屏幕頂部會(huì)有一條紅色條,然后用播放器播放會(huì)發(fā)現(xiàn)錄音與推流成功。
如果是在藍(lán)牙方面在后臺(tái)跟設(shè)備進(jìn)行語(yǔ)音數(shù)據(jù)交互的話只需要上面第一步
再添加后臺(tái)運(yùn)行藍(lán)牙模式即可

1.修改Info.plist文件,添加Required background modes鍵,并添加下面2個(gè)item
  1. bluetooth-central
  2. bluetooth-peripheral
    這兩個(gè)item的意義分別為:
  • App communicates using CoreBluetooth
  • App shares data using CoreBluetooth
2.最后開啟后臺(tái)模式
 NSArray *backgroundModes = [[[NSBundle mainBundle] infoDictionary]objectForKey:@"UIBackgroundModes"];
        if ([backgroundModes containsObject:@"bluetooth-central"]) {
            //后臺(tái)模式
            _cMgr = [[CBCentralManager alloc] initWithDelegate:self queue:dispatch_get_main_queue() options:options];
        }

這時(shí)候在app切入后臺(tái)就會(huì)發(fā)現(xiàn)可以跟藍(lán)牙設(shè)備通話,屏幕頂部也會(huì)有一條紅色條

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容