获取网络线路组
- (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 | 网络状态 |