-
Notifications
You must be signed in to change notification settings - Fork 271
BackgroundStream
Franken Zeng edited this page May 31, 2017
·
1 revision
在直播过程中, 主播可能会不小心按到Home键, 或者切到其他应用, 导致直播APP进入了后台.
这时候, 如果不做任何处理会导致推流中断, 对观众来说会出现卡顿.
为了获得更好的体验, 本SDK支持后台推流.
开启后,直播APP切到后台时可以继续发送音视频流. 音频部分可以继续采集,正常发送; 视频部分保持切后台前的一帧, 重复发送.
- v1.7.2(含) 支持切后台纯音频流发送
- v1.9.5(含) 支持切后台音视频流发送, 避免出现一段时间视频缺失导致推拉链路上的问题
在工程的 Capability 中开启Background Modes,并勾选Audio,AirPlay,and Picture in Picture.
当我们开启了后台推流权限,但是我们又不想在后台采集、推流是我们改如何做呢?
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属性, 来实现自动重复最后采集到帧.