-
Notifications
You must be signed in to change notification settings - Fork 271
streamStat
Franken Zeng edited this page Dec 1, 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)
| 状态名称 | value | 状态说明 |
|---|---|---|
| KSYStreamErrorCode_NONE | 0 | 正常无错误 |
| KSYStreamErrorCode_KSYAUTHFAILED | 1 | SDK 鉴权失败 (暂时正常推流5~8分钟后终止推流)(KSY 自定义,已经不会出现) |
| KSYStreamErrorCode_ENCODE_FRAMES_FAILED | 2 | 当前帧编码失败 |
| KSYStreamErrorCode_CODEC_OPEN_FAILED | 3 | 无法打开配置指示的CODEC,一般出现在VT264编码时,当出现该错误的时候需要重试 |
| KSYStreamErrorCode_CONNECT_FAILED | 4 | 连接出错,检查地址 |
| KSYStreamErrorCode_CONNECT_BREAK | 5 | 网络连接中断 , 当出现该错误的时候建议重推流 |
| KSYStreamErrorCode_RTMP_NonExistDomain | 6 | rtmp 推流域名不存在 (KSY 自定义) |
| KSYStreamErrorCode_RTMP_NonExistApplication | 7 | rtmp 应用名不存在(KSY 自定义) |
| KSYStreamErrorCode_RTMP_AlreadyExistStreamName | 8 | rtmp 流名已存在(KSY 自定义) |
| KSYStreamErrorCode_RTMP_ForbiddenByBlacklist | 9 | rtmp 被黑名单拒绝(KSY 自定义) |
| KSYStreamErrorCode_RTMP_InternalError | 10 | rtmp 内部错误(KSY 自定义) |
| KSYStreamErrorCode_RTMP_URLExpired | 11 | rtmp URL 地址已过期(KSY 自定义) |
| KSYStreamErrorCode_RTMP_SignatureDoesNotMatch | 12 | rtmp URL 地址签名错误(KSY 自定义) |
| KSYStreamErrorCode_RTMP_InvalidAccessKeyId | 13 | rtmp URL 中AccessKeyId非法(KSY 自定义) |
| KSYStreamErrorCode_RTMP_BadParams | 14 | rtmp URL 中参数错误(KSY 自定义) |
| KSYStreamErrorCode_RTMP_ForbiddenByRegion | 15 | rtmp URL 中的推流不在发布点内(KSY 自定义) |
| KSYStreamErrorCode_FRAMES_THRESHOLD | 16 | SDK 因为鉴权失败停止推流 |
| KSYStreamErrorCode_NO_INPUT_SAMPLE | 17 | 没有输入的数据,无法开始推流 |
| KSYStreamErrorCode_DNS_Parse_failed | 18 | 对于URL中的域名解析失败 |
| KSYStreamErrorCode_Connect_Server_failed | 19 | 对于URL对应的服务器连接失败(无法建立TCP连接) |
| KSYStreamErrorCode_RTMP_Publish_failed | 20 | 跟RTMP服务器完成握手后,向{appname}/{streamname} 推流失败 |
| KSYStreamErrorCode_AV_SYNC_ERROR | 21 | 音视频同步失败 (输入的音频和视频的时间戳的差值超过5s) |
| KSYStreamErrorCode_INVALID_ADDRESS | 22 | 非法地址(地址为空或url中的协议或本地文件的后缀SDK不支持, 请检查) |

