实现直播

更新时间:2021-05-25

概述

本篇文章,主要介绍了在集成 SDK 后,如何实现基本的直播功能。

前提条件

首先需要在 开发者平台 注册账号,创建应用,然后获取 SDK 鉴权需要的 appIDappSecret ,在实现直播之前,请确认您已完成以下操作:

跑通示例代码

示例代码包含了基本的接入示例可供接入进行参考,帮助开发者快速接入SDK。

  1. 示例代码下载页面 下载用于集成参考的 Demo 源码工程。
  2. 在 AppKey.h 文件中填入您的 AppKey。
  3. 运行工程。

示例代码说明

Demo 提供了测试登录的功能,可任意输入 name 和 uid 进行登录,点 Login 进入测试登录页面。

实际接入SDK过程中,这一步是由接入方服务端与LinkV服务端进行交互后获取到 token 和 openID,然后调用客户端SDK的 onLoginSuccessWithOriginUid 接口进行绑定登录。

登录成功后,点击 Live List 可进入直播列表页。

测试登录功能说明

APP 有一套自己的账号系统,SDK 有一套自己的账号系统,LinkV 提供了账号绑定的功能,在接入方自己 APP 登录后,拿到用户id, 昵称,头像信息等,然后通过服务端 SDK server to server 的交互 拿到 openID 和 token传递给SDK 才能完成登录功能。 img

示例代码中提供了 LinkVExampleLogin.hlibLinkVExampleLogin.a 用于在接入服务端 SDK 完成 server 对接之前,模拟 server to server 获取 token 的过程,调用SDK 的 测试登录 bindingTokenWithUid 接口,直接拿到 测试 token 进行完成登录。

// Test GetToken
[LinkVExampleLogin bindingTokenWithUid:uid userName:unamecomplete:^(NSString *originId, NSString *uid, NSString*token) {
    if (originId && uid && token) {
        [MBProgressHUD showMsg:@"Login Success"];
        
        [[LinkliveSDK sharedInstance] onLoginSuccessWithOriginUid:originId uid:uid token:token];
    }else{
        [MBProgressHUD showMsg:@"Get Token Fail"];
    }
}];

初始化

  1. Appdelegate.m 导入 LinkliveSDK.h
  2. 在启动方法中调用 SDK 初始化函数,设置 SDK 代理对象
  3. 在代理对象中实现 agreePrivacyPolicyWithCompletion 方法,应用在欧盟发布同时需要在代理对象中实现 hasAgreeGDPR 方法。

初始化SDK

#import <LinkliveSDK/LinkliveSDK.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[LinkliveSDK sharedInstance] initSDKWithAppid:appID appSecret:appSecret];
    [LinkliveSDK sharedInstance].delegate = self;
    return(YES);
}

实现必备代理

因为在观看直播和开播功能中会对当前的隐私协议授权状态做校验,没有得到授权会影响功能的使用,如果想要正常使用SDK中的全部功能需要在agreePrivacyPolicyWithCompletion返回正确的隐私协议授权状态。

- (BOOL)agreePrivacyPolicyWithCompletion:(void (^)(BOOL hasAgree) )completionBlock
{
    return YES;
}

如果应用在欧盟地区发布,需要GDPR授权,如果授权失败,直播和开播功能不可用。

- (BOOL)hasAgreeGDPR {
  return YES;
}

添加直播页

/* Get live data VC */
UIViewController *liveListController = [[LinkliveSDK sharedInstance] fetchVideoListVC];
liveListController.view.frame = CGRectMake( 0, kTopHeight, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - kTopHeight );

/* Add to controller */
[self addChildViewController:liveListController];
[self.view addSubview:liveListController.view];