如何通过iOS SDK观看视频

观看点播准备

  1. 注册微吼开发者账号

  2. 创建应用 获取AppID

  3. 设置应用Bundle ID

  4. 获取 点播ID recordId

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

  5. 获取包含点播权限的access_token

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

工程配置

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

时序图

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

对接流程

1: 引入点播播放器头文件

#import "VHVodPlayer.h"

2: 创建点播播放器

SDK 中的 VHVodPlayer 模块负责实现直播播放功能。

_vodPlayer = [[VHVodPlayer alloc] init];

3: 设置 渲染View、delegate

  • delegate 设置播放器代理
  • 接下来我们要给播放器的视频画面找个地方来显示,iOS系统中使用 view 作为基本的界面渲染单位,所以您只需要准备一个 view 并调整好布局就可以了。
_vodPlayer.delegate = self;
_vodPlayer.view.frame = self.view.bounds;
[self.view insertSubview:_vodPlayer.view atIndex:0];

4: 开始播放

recordId 和 accessToken 参考页首观看点播准备

NSString* recordId = @"xxxxxx";
NSString* accessToken = @"xxxxxxxxxx";
[_vodPlayer startPlay:recordId accessToken:accessToken];

5: 画面调整

_vodPlayer.scalingMode = VHPlayerScalingModeAspectFit;
可选值 含义
VHPlayerScalingModeFill 将图像拉伸填充
VHPlayerScalingModeAspectFit 将图像等比例缩放,适配最长边,缩放后的宽和高都不会超过显示区域,居中显示,画面可能会留有黑边
VHVPlayerScalingModeAspectFill 将图像等比例铺满整个屏幕,多余部分裁剪掉,此模式下画面不会留黑边,但可能因为部分区域被裁剪而显示不全

6: 清晰度切换

_vodPlayer.curDefinition = VHDefinitionOrigin;
可选值 含义
VHDefinitionOrigin 原画
VHDefinitionUHD 超高清
VHDefinitionHD 高清
VHDefinitionSD 标清
VHDefinitionAudio 纯音频

7: 暂停/恢复播放

// 暂停
[_vodPlayer pause];
// 恢复
[_vodPlayer resume];

8: 结束播放

结束当前直播,播放器资源并未释放

[_vodPlayer stopPlay];

9: 销毁播放器

释放播放器资源

[_vodPlayer destroyPlayer];

事件处理

  • 播放状态监听

SDK 通过 VHVodPlayerDelegate 代理来监听播放器相关的状态和事件

具体 VHVodPlayerDelegate 中方法参考【发起直播参考手册

状态 含义
VHPlayerStatusLoading 加载中
VHPlayerStatusPlaying 播放中
VHPlayerStatusStop 停止播放
VHPlayerStatusPause 播放暂停

快速集成代码

可以把观看点播代码写到 ViewController.m 的 viewDidLoad 方法中测试观看,代码如下:

//
//  ViewController.m
//  TestProject
//
//  Created by vhall on 2018/3/12.
//  Copyright © 2018年 vhall. All rights reserved.
//

#import "ViewController.h"

#import "VHVodPlayer.h"

@interface ViewController ()<VHVodPlayerDelegate>
@property (nonatomic,strong)VHVodPlayer *vodPlayer;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    //构造并初始化播放器
    _vodPlayer = [[VHVodPlayer alloc] init];
    //设置代理
    _vodPlayer.delegate = self;
    //设置显示区域
    _vodPlayer.view.frame = self.view.bounds;
    //加入显示view
    [self.view insertSubview:_vodPlayer.view atIndex:0];
    
    //开始播放
    NSString* recordId      = @"xxxxxxxxxx";//recordId 获得方式 参考页面开始处
    NSString* accessToken   = @"xxxxxxxxxx";//accessToken 获得方式 参考页面开始处
    [_vodPlayer startPlay:recordId accessToken:accessToken];
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)viewDidLayoutSubviews
{
    //刷新播放器画面位置
    _vodPlayer.view.frame = self.view.bounds;
}

#pragma mark - VHVodPlayerDelegate
/**
 *  错误回调
 *  @param player   播放器实例
 *  @param error    错误
 */
- (void)player:(VHVodPlayer *)player stoppedWithError:(NSError *)error
{
    NSLog(@"错误: %@",error );
}

@end

其他相关文档

  1. 快速开始
  2. 观看点播参考手册