zoukankan      html  css  js  c++  java
  • 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切入后台会发现屏幕顶部会有一条红色条,然后用播放器播放会发现录音与推流成功.

  • 相关阅读:
    python使用matplotlib:subplot绘制多个子图 不规则画图
    Python_matplotlib画图时图例说明(legend)放到图像外侧
    python ndarray与pandas series相互转换,ndarray与dataframe相互转换
    用Python实现excel 14个常用操作
    Python中保留两位小数的几种方法
    画图显示中文
    python命名规范
    Alpha阶段小结
    敏捷冲刺每日报告——Day5
    敏捷冲刺每日报告——Day4
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5660597.html
Copyright © 2011-2022 走看看