-
Notifications
You must be signed in to change notification settings - Fork 270
streamStat
pengbin edited this page Dec 5, 2017
·
15 revisions
配置好采集参数之后,通过kit.streamerBase类的startStream和stopStream方法启动和停止推流。
推流相关的消息通知需要通过NSNotificationCenter注册 KSYStreamStateDidChangeNotification来接收。 当收到推流状态变化的通知时,通过kit.streamerBase.streamState属性查询新的状态
状态名称 | 状态说明 |
---|---|
KSYStreamStateIdle | 初始化时状态为空闲 |
KSYStreamStateConnecting | 连接中 |
KSYStreamStateConnected | 已连接 |
KSYStreamStateDisconnecting | 断开连接中 |
KSYStreamStateError | 推流出错 |
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(onStreamStateChange:)
name:KSYStreamStateDidChangeNotification
object:nil];
响应事件:
- (void) onStreamStateChange:(NSNotification *)notification {
if ( _kit.streamerBase.streamState == KSYStreamStateIdle) {
NSLog(@"idle");
}
else if ( _kit.streamerBase.streamState == KSYStreamStateConnected){
NSLog(@"connected");
}
else if (_kit.streamerBase.streamState == KSYStreamStateConnecting ) {
NSLog(@"kit connecting");
}
else if (_kit.streamerBase.streamState == KSYStreamStateDisconnecting ) {
NSLog(@"disconnecting");
}
else if (_kit.streamerBase.streamState == KSYStreamStateError ) {
[self onStreamError];
}
}
移除通知:
[[NSNotificationCenter defaultCenter] removeObserver:self
name:KSYStreamStateDidChangeNotification
object:nil];
##错误状态 请通过KSYStreamErrorCode 查询定义。 代码通过以下属性获取推流errorCode:
_kit.streamerBase.streamErrorCode
通过getKSYStreamErrorCodeName可以查询到错误码对应的字符串描述
- (NSString*) getKSYStreamErrorCodeName:(KSYStreamErrorCode)code;
错误码详细说明请见wiki: errorCode
如果调用 开启推流接口 [kit.streamerBase startStream:url] 后, 一直卡在connecting 状态, 没有错误通知. 这种情况请检查音视频数据是否有正常通过 process系列接口送入. 默认情况下 streamerBase 需要同时接收到音频数据和视频数据之后才能开始推流. 如果你们只调用了 processVideoSampleBuffer, 送入视频数据, streamerBase会一直等待音频数据; 反之,如果只调用了 processAudioSampleBuffer 送入音频数据, 也会一直等待视频数据.
如果是自定义的推流, 不需要音频, 可以通过streamerBase.bWithAudio = NO 来关闭音频通路 同理, 如果不需要视频, 可以通过streamerBase.bWithVideo = NO 来关闭视频频通路