Skip to content

BackgroundStream

Franken Zeng edited this page May 31, 2017 · 1 revision

后台推流

简介

在直播过程中, 主播可能会不小心按到Home键, 或者切到其他应用, 导致直播APP进入了后台.
这时候, 如果不做任何处理会导致推流中断, 对观众来说会出现卡顿.
为了获得更好的体验, 本SDK支持后台推流.
开启后,直播APP切到后台时可以继续发送音视频流. 音频部分可以继续采集,正常发送; 视频部分保持切后台前的一帧, 重复发送.

要求: 直播App开启后台音频采集权限, 后台运行权限

变更历史

  • v1.7.2(含) 支持切后台纯音频流发送
  • v1.9.5(含) 支持切后台音视频流发送, 避免出现一段时间视频缺失导致推拉链路上的问题

后台采集权限配置方法

在工程的 Capability 中开启Background Modes,并勾选Audio,AirPlay,and Picture in Picture.

setAudio

关闭后台推流

当我们开启了后台推流权限,但是我们又不想在后台采集、推流是我们改如何做呢?

1.监听进入后台事件

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enterBg:) name:UIApplicationDidEnterBackgroundNotification object:nil];
- (void)enterBg:(NSNotification *)not{  //app will resigned
    [_kit.streamKit.aCapDev stopCapture];
}

2.监听进入前台事件

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(becameActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
- (void)becameActive:(NSNotification *)not{  //app will resigned
    [_kit.streamKit.aCapDev startCapture];
}

内部实现方法

SDK内部监听了前后台切换的消息, 在进入后台的时候 调用了 kit内的KSYGPUPicOutput的bAutoRepeat属性, 来实现自动重复最后采集到帧.

1. 推流环节说明

2. 特色功能说明

2.1 采集

2.2 音频处理

2.3 视频处理

2.4 编码

2.5 推流

2.6 输入多样化

2.7 集成

3. 第三方功能

4. 技术专栏

5. 已知问题

8. FAQ

金山云计算

Clone this wiki locally