-
Notifications
You must be signed in to change notification settings - Fork 271
streamStat
pengbin edited this page Aug 19, 2016
·
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)
| 状态名称 | 状态说明 |
|---|---|
| KSYStreamErrorCode_NONE | 正常无错误 |
| KSYStreamErrorCode_CODEC_OPEN_FAILED | 无法打开配置指示的CODEC |
| KSYStreamErrorCode_CONNECT_FAILED | 连接出错,检查地址 |
| KSYStreamErrorCode_CONNECT_BREAK | 网络连接中断 |
| 、、、 | 、、、 |
- (void) onStreamError {
KSYStreamErrorCode err = _kit.streamerBase.streamErrorCode;
if ( KSYStreamErrorCode_KSYAUTHFAILED == err ) {
NSLog(@"SDK auth failed, \npls check ak/sk");
}
else if ( KSYStreamErrorCode_CODEC_OPEN_FAILED == err) {
NSLog(@"Selected Codec not supported \n in this version");
}
else if ( KSYStreamErrorCode_CONNECT_FAILED == err) {
NSLog(@"Connecting error, pls check host url \nor network");
}
else if ( KSYStreamErrorCode_CONNECT_BREAK == err) {
NSLog( @"Connection break");
}
else {
_stat.text = [_kit getKSYStreamErrorCodeName:err];
}
// 断网重连
if ( KSYStreamErrorCode_CONNECT_BREAK == err && _btnAutoReconnect.isOn ) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[_kit.streamerBase stopStream];
[_kit.streamerBase startStream:_hostURL];
[self initStatData];
});
}
}

