编辑: 人间点评 | 2017-10-07 |
if (null != data.getUrls()){ // 打印推流类型及地址 for (ILivePushUrl url : data.getUrls()){ Log.d( PUSH_DBG , type: +url.getEncode()+ , +url.getRateType()+ : +url.getUrl());
} } } @Override public void onError(String module, int errCode, String errMsg) { Log.d( PUSH_DBG , startPush->
failed: +module+ | +errCode+ | +errMsg);
} });
ILivePushOption *option = [[ILivePushOption alloc] init];
ILiveChannelInfo *info = [[ILiveChannelInfo alloc] init];
info.channelName = @ 测试频道 ;
//直播码模式下无意义 info.channelDesc = @ 测试频道描述 ;
//直播码模式下无意义 option.channelInfo = info;
option.encodeType = ILive_ENCODE_HLS;
option.recrodFileType = ILive_RECORD_FILE_TYPE_HLS;
option.recordId = 123456;
//手动推流自动录制时,如果需要后台识别特定的录制文件,用户可以通过这个字段做区分. [[ILiveRoomManager getInstance] startPushStream:option succ:^(id selfPtr) { AVStreamerResp *resp = (AVStreamerResp *)selfPtr;
NSLog(@ 推流成功 %@ , [resp urls]);
NSLog(@ 推流获取到的频道 ID:%llu , resp.channelID) } failed:^(NSString *module, int errId, NSString *errMsg) { NSLog(@ 推流失败 );
}];
void OnStartPushStreamSuc( PushStreamRsp &
value, void *data ) { //开始推流成功 旁路直播 产品文档 版权所有:腾讯云计算(北京)有限责任公司 第7 共22页 停止旁路直播 SDK 接口 Android: ILiveRoomManager.getInstance().stopPushStream(iPushId, new ILiveCallBack() { @Override public void onSuccess(Object data) { Log.d( PUSH_DBG , stopPush->
success );
} @Override public void onError(String module, int errCode, String errMsg) { Log.d( PUSH_DBG , stopPush->
failed: +module+ | +errCode+ | +errMsg);
} });
iOS: // pushID 为startPushStream 中返回的频道 ID NSArray *chids = @[(pushID)];
[[ILiveRoomManager getInstance] stopPushStreams:chids succ:^{ NSLog(@ 停止推流成功 );
} failed:^(NSString *module, int errId, NSString *errMsg) { NSLog(@ 停止推流失败 );
}];
PC: void OnStopPushStreamSuc( void* data ) { //停止推流成功 } void OnStopPushStreamErr( int code, const char *desc, void* data ) { m_channelId = value.channelId;
//频道 ID,停止推流时需要使用此 ID;
直播码模式下,此值始终未 0;
m_pushUrls = value.urls.;
//推流地址 } void OnStartPushStreamErr( int code, const char *desc, void* data ) { //开始推流失败 } PushStreamOption pushOpt;
pushOpt.pushDataType = E_PushCamera;
//推送数据类型 pushOpt.encode = RTMP;
//推流数据编码方式 pushOpt.recordFileType = RecordFile_NONE;
//推流时自动录制的文件类型 pushOpt.recordId = 123456;
//手动推流自动录制时,如果需要后台识别特定的录制文件,用户可以通过这个 GetILive()->
startPushStream( pushOpt, OnStartPushStreamSuc, OnStartPushStreamErr, NULL );
旁路直播 产品文档 版权所有:腾讯云计算(北京)有限责任公司 第8 共22页//停止推流失败 } GetILive()->
stopPushStream(m_channelId, OnStopPushStreamSuc, OnStopPushStreamErr, NULL);
拼接播放地址方式的变化 直播码计算规则 直播码= BIZID_MD5(房间号_用户名_数据类型) . 字符串传输按 utf-8 编码.摄像头数据类型是 main,屏幕分享的数据类型是 aux.而BIZID 是一个固定的参数,可以 在直播控制台的顶部找到它. 假如 BIZID=8888,用户名=14y2l2c,房间号=293710,在进行摄像头分享, 则MD5(293710_14y2l2c_main)=81265058829fd2e50c8ec2ac78d55127 .那么直播码就 是8888_81265058829fd2e50c8ec2ac78d55127 . 拼接播放地址规则 播放地址如下: 传输协议://BIZID.liveplay.myqcloud.com/live/直播码[.格式] 以上面为例,三种格式的播放地址依次如下: rtmp: rtmp://8888.liveplay.myqcloud.com/live/8888_81265058829fd2e50c8ec2ac78d55127 flv: http://8888.liveplay.myqcloud.com/live/8888_81265058829fd2e50c8ec2ac78d55127.flv hls: http://8888.liveplay.myqcloud.com/live/8888_81265058829fd2e50c8ec2ac78d55127.m3u8 我们强烈建议业务后台拼接播放地址,再下发给客户端.这样容易应对播放地址拼接规则的变动. 旁路直播 产品文档 版权所有:腾讯云计算(北京)有限责任公司 第9 共22页 旁路直播事件服务器回调通知 旁路直播会收到两种 event_type.0 代表旁路直播中断,1 代表旁路直播开启,同时消息体会额外包含如下信息: 字段名称 类型 含义 appname string 推流路径 App string 推流域名 a........