实现直播
更新时间:2021-05-25
概述
本篇文章,主要介绍了在集成 SDK 后,如何实现基本的直播功能。
前提条件
首先需要在 开发者平台 注册账号,创建应用,然后获取 SDK 鉴权需要的 appID
和 appSecret
,在实现直播之前,请确认您已完成以下操作:
跑通示例代码
示例代码包含了基本的接入示例可供接入进行参考,帮助开发者快速接入SDK。
- 在 示例代码下载页面 下载用于集成参考的 Demo 源码工程。
- 在 AppKey.h 文件中填入您的 AppKey。
- 运行工程。
示例代码说明
Demo 提供了测试登录的功能,可任意输入 name 和 uid
进行登录,点 Login 进入测试登录页面。
实际接入SDK过程中,这一步是由接入方服务端与LinkV服务端进行交互后获取到 token 和 openID
,然后调用客户端SDK的 onLoginSuccessWithOriginUid
接口进行绑定登录。
登录成功后,点击 Live List 可进入直播列表页。
测试登录功能说明
APP 有一套自己的账号系统,SDK 有一套自己的账号系统,LinkV 提供了账号绑定的功能,在接入方自己 APP 登录后,拿到用户id, 昵称,头像信息等,然后通过服务端 SDK server to server
的交互 拿到 openID 和 token
后 传递给SDK
才能完成登录功能。
示例代码中提供了 LinkVExampleLogin.h
和 libLinkVExampleLogin.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"];
}
}];
初始化
- 在
Appdelegate.m
导入LinkliveSDK.h
- 在启动方法中调用 SDK 初始化函数,设置 SDK 代理对象
- 在代理对象中实现
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];