如何通过iOS SDK观看文档

观看文档准备

  1. 注册微吼开发者账号

  2. 创建应用 获取AppID

  3. 设置应用Bundle ID

  4. 获取 频道ID channelID

    可以通过 【测试工具】 或 【API】 获得

  5. 获取包含文档权限的access_token

    可以通过 【测试工具】 或 【API】 获得

  6. 获取 点播ID recordId

    可以通过【控制台上传】或【测试工具】或【API】获得

工程配置

在开始使用sdk之前,我们要配置好IDE和创建基础的工程代码。相关内容在【工程配置】中有详细说明。

时序图

注:已知频道ID的情况下虚线框部分无需请求。

对接流程

1: 引入文档模块头文件

#import "VHDocument.h"

2: 创建Document

SDK 中的 VHDocument 模块负责实现 文档服务相关功能。

  1. 直播文档模块初始化 获取channelID和accessToken 参考页首观看文档准备
NSString* channelID = @"xxxxxx";
NSString* accessToken = @"xxxxxxxxxx";
_document = [[VHDocument alloc]initWithChannelID:channelID accessToken:accessToken];
  1. 点播文档模块初始化

获取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

其他相关文档

  1. 快速开始
  2. 文档模块参考手册