获取网络线路组
- (void)getLineList:(void (^_Nullable)(TFLiveLineManager * _Nullable result))callback;
调用示例:
[self.talkfunSDK getLineList:^(TFLiveLineManager* result) {
if (result.code == TalkfunCodeSuccess) {
}else{
}
}];
设置线路
- (void)setNetwork:(NSString _Nonnull)operatorID selectedSegmentIndex:(NSInteger)selectedSegmentIndex callback:(void (^\_nullable)(NSInteger code ,TFError __Nullable error))callback
调用示例:
[self.talkfunSDK setNetwork:button.networkDict.key selectedSegmentIndex:button.groupIndex callback:^(NSInteger code, TFError * _Nullable error) {
if (code == 0) {
}
}];
----------------------下面的代码为过期的方法,不建议使用----------------------
伪直播说明
伪直播和直播的播放流程和逻辑是一致的,不需要特殊处理。
网络线路只能切换不同线路不能选择运营商
如果当前网络速度不理想,SDK提供了接口更改网络。
网络选择
//获取网络列表(伪直播和直播的播放流程和逻辑是一致的)
- (void)getNetworkList:(void (^)(id result))callback;
//设置网络
- (void)setNetwork:(NSString *)operatorID sourceName:(NSString *)sourceName selectedSegmentIndex:(NSInteger)selectedSegmentIndex;
调用示例:
WeakSelf
// isVodLive为YES,是伪直播
[self.talkfunSDK getNetworkList:^(id result) {
if ([result[@"code"] intValue] == TalkfunCodeSuccess) {
//判断如果是直播
if ([result[@"isVodLive"] intValue ]==0)
{
weakSelf.networkSelectionVC.networkSelectionArray = result[@"data"];
PERFORM_IN_MAIN_QUEUE(
//TODO:网络选择控制器
[weakSelf.view addSubview:weakSelf.networkSelectionVC.view];
)
}
//判断如果是伪直播
else{
UIView * view = [[UIApplication sharedApplication].keyWindow viewWithTag:123];
if (!view) {
//TODO:线路选择
TalkfunNetworkLines * networkLinesView = [[NSBundle mainBundle] loadNibNamed:@"TalkfunNetworkLines" owner:nil options:nil][0];
networkLinesView.tag = 123;
networkLinesView.networkLinesArray = result[@"data"][@"operators"];
networkLinesView.frame = CGRectMake(0, 0, ScreenSize.width, ScreenSize.height);
WeakSelf
networkLinesView.networkLineBlock = ^(NSNumber * networkLineIndex){
[weakSelf.talkfunSDK setNetwork:nil selectedSegmentIndex:[networkLineIndex intValue]];
};
PERFORM_IN_MAIN_QUEUE(
[weakSelf.view addSubview:networkLinesView];
)
}
}
}else{
[weakSelf.view toast:result[@"msg"] position:ToastPosition];
}
}];
@直播参数说明
参数 | 类型 | 描述 |
---|---|---|
code | NSNumber | 状态码 |
data | NSArray | 数据 |
network | NSDictionary | 网络信息 |
cdn | NSString | cdn |
直播data数据说明:
参数 | 类型 | 描述 |
---|---|---|
cur | NSNumber | 线路 |
sourceName | NSString | 资源名称 |
host | NSString | 域名 |
cdn | NSString | cdn |
@伪直播参数说明:
数组里面装的是字典,字典里面数据如下:
参数 | 类型 | 描述 |
---|---|---|
current | NSNumber | 是否当前线路(0不是,1是) |
name | NSString | 线路名 |
index | NSNumber | 线路指针(调用setNetworkLine传进的参数) |
把对应的运营商的key作为operatorID参数、sourceName作为sourceName参数、cur作为cur参数传进去。
直播
-(void)setNetwork:(NSString *)operatorID sourceName:(NSString *)sourceName selectedSegmentIndex:(NSInteger)selectedSegmentIndex;
伪直播
[self.talkfunSDK setNetwork:@"operatorID" sourceName:@"sourceName" selectedSegmentIndex:@"cur"];
网络速度: TALKFUN_EVENT_NETWORK_SPEED
调用示例:
[self.talkfunSDK on:TALKFUN_EVENT_NETWORK_SPEED callback:^(id obj) {
}];
@参数说明:
参数 | 类型 | 描述 |
---|---|---|
speed | NSString | 当前速度 |
networkStatus | TalkfunNetworkStatus | 网络状态 |