观看文档准备
-
获取 频道ID channelID
-
获取包含文档权限的access_token
-
获取 点播ID recordId
工程配置
在开始使用sdk之前,我们要配置好IDE和创建基础的工程代码。相关内容在【工程配置】中有详细说明。
时序图
注:已知频道ID的情况下虚线框部分无需请求。
对接流程
1: 引入文档模块头文件
#import "VHDocument.h"
2: 创建Document
SDK 中的 VHDocument 模块负责实现 文档服务相关功能。
- 直播文档模块初始化 获取channelID和accessToken 参考页首观看文档准备
NSString* channelID = @"xxxxxx";
NSString* accessToken = @"xxxxxxxxxx";
_document = [[VHDocument alloc]initWithChannelID:channelID accessToken:accessToken];
- 点播文档模块初始化
获取recordId 和 channelID 参考页首观看文档准备
NSString* recordId = @"xxxxxx";
_document = [[VHDocument alloc]initWithRecordID:recordId];
多channelID情况
NSString* channelID = @"xxxxxx";
NSString* recordId = @"xxxxxx";
_document = [[VHDocument alloc]initWithRecordID:recordId channelID:channelID];
3: 设置 渲染View、delegate
- delegate 设置文档代理
- 接下来我们要给文档画面找个地方来显示,iOS系统中使用 view 作为基本的界面渲染单位,所以您只需要准备一个 view 并调整好布局就可以了。
_document.delegate = self;
_document.view.frame = self.view.bounds;
[self.view insertSubview:_document.view atIndex:0];
事件处理
SDK 通过 VHDocumentDelegate 代理来监听文档相关事件
具体 VHDocumentDelegate 中方法参考【文档模块参考手册】
1: 错误回调
/**
* 错误回调
* @param document 文档实例
* @param error 错误
*/
- (void)document:(VHDocument *)document error:(NSError *)error;
快速集成代码
可以把观看文档代码写到 ViewController.m 的 viewDidLoad 方法中测试文档,代码如下:
//
// ViewController.m
// TestProject
//
// Created by vhall on 2018/3/12.
// Copyright © 2018年 vhall. All rights reserved.
//
#import "ViewController.h"
#import "VHDocument.h"
@interface ViewController ()<VHDocumentDelegate>
@property (nonatomic,strong)VHDocument *document;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString* channelID = @"xxxxxx";//channelID 获得方式 参考页面开始处
NSString* accessToken = @"xxxxxxxxxx";//accessToken 获得方式 参考页面开始处
NSString* recordId = @"xxxxxx";//recordId 获得方式 参考页面开始处
//直播文档初始化
_document = [[VHDocument alloc]initWithChannelID:channelID accessToken:accessToken];
//点播文档初始化,需要同时初始化点播模块,播放有文档的点播
//_document = [[VHDocument alloc]initWithRecordID:recordId];
//设置代理
_document.delegate = self;
//设置显示区域
_document.view.frame = self.view.bounds;
//加入显示view
[self.view insertSubview:_document.view atIndex:0];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)viewDidLayoutSubviews
{
//刷新画布位置
_document.view.frame = self.view.bounds;
}
#pragma mark - VHDocumentDelegate
/**
* 错误回调
* @param document 文档实例
* @param error 错误
*/
- (void)document:(VHDocument *)document error:(NSError *)error
{
NSLog(@"错误: %@",error );
}
@end