logologo
售前咨询
点播云
产品简介
购买指南
快速入门
控制台指南
服务端API
SDK文档
播放器SDK
Web端播放器
Android端播放器
iOS端播放器
上传SDK
服务端SDK
相关协议
文档中心
SDK文档播放器SDKiOS端播放器快速开始

快速开始


本文档介绍如何简单使用SDK,播放视频

1 前提条件

您已经完成SDK的集成准备集成SDK

2 基本流程

2.1 初始化SDK

sdk在使用前需要初始化

  • 初始化操作建议放到- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中执行。
#import <KSMediaPlayer/KSMediaPlayer.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//SDK的初始化,内部会完成SDK的安全检验、缓存路径的建立及播放配置的远程下发,此时不会创建播放器实例
BOOL success = [KSMediaPlayerConfig initWithAppId:@"appId" //appId 和我方服务工程师沟通后获取
appKey:@"appKey"//appKey 和我方服务工程师沟通后获取
ksFileBundlePath:[[NSBundle mainBundle] bundlePath]//ksFileBundlePath 鉴权文件所在的bundle path如果在工程目录中,就是[[NSBundle mainBundle] bundlePath]
cacheDir:nil//cacheDir 如需自定义缓存路径,cacheDir请传入完整路径; 否则传入nil即可, SDK内部会使用默认的沙盒路径进行创建
deviceId:@"deviceId"];//deviceId 业务定义的deviceId 用户播放器的上报,确定设置
if (!success) {
NSLog(@"播放SDK校验失败,后续无法创建播放器实例,请检查传入参数!!!!!");
}
return YES;
}

2.2 播放

SDK具备点播和直播的播放能力,分别介绍点播和直播的快速播放的步骤。

2.2.1 点播播放

2.2.1.1 播放器生命周期

播放器初始状态为Inited,生命周期内其状态变迁如下图所示。

其中单箭头代表方法触发状态变化,双箭头表示状态变化时有事件回调

2.2.1.2 创建播放器

播放器的方法有url、videoId、manifest,先演示用视频url地址创建创建播放器。

一个播放器实例只能播放一个视频url
  • 示例代码
NSString *url = @"https://*******";
KSMediaPlayer *player = [[KSMediaPlayer alloc] initWithUrl:url];//用视频URL创建播放器
player.delegate = self;//设置播放器代理
2.2.1.3 设置显示视图

播放器的显示视图需要加到父视图上,才能正常显示视频画面。

  • 示例代码
//将播放器视图加载到父视图中
[self.playerView addSubview:player.playerView];

//设置播放视图约束
player.playerView.translatesAutoresizingMaskIntoConstraints = NO;
[player.playerView.leadingAnchor constraintEqualToAnchor:self.playerView.leadingAnchor].active = YES;
[player.playerView.trailingAnchor constraintEqualToAnchor:self.playerView.trailingAnchor].active = YES;
[player.playerView.widthAnchor constraintEqualToAnchor:self.playerView.widthAnchor].active = YES;
[player.playerView.heightAnchor constraintEqualToAnchor:self.playerView.heightAnchor].active = YES;
2.2.1.4 设置是否自动播放

如果shouldAutoplay=YES播放器在调用- (void)prepareToPlay方法,准备完成之后会自动播放。

如果shouldAutoplay=NO播放器在调用- (void)prepareToPlay方法,准备完成之后不会自动播放。

需要在- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event 代理中KSMediaPlayerEvent_IsPrepared时间回调之后调用- (void)play方法播放

  • 示例代码
//设置自动播放
/*如果shouldAutoplay=YES播放器在调用- (void)prepareToPlay方法,准备完成之后会自动播放。
如果shouldAutoplay=NO播放器在调用- (void)prepareToPlay方法,准备完成之后不会自动播放。
需要在- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event 代理中KSMediaPlayerEvent_IsPrepared时间回调之后调用- (void)play方法播放*/
player.shouldAutoplay = YES;
2.2.1.5 准备播放

播放器初始化完成之后,需要调用- (void)prepareToPlay方法,开始播放前准备

  • 示例代码
//准备播放
//如果shouldAutoplay=YES播放器会自动播放
/*如果shouldAutoplay=NO播放器不会自动播放需要在- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event
代理中KSMediaPlayerEvent_IsPrepared时间回调之后调用- (void)play方法播放*/
[player prepareToPlay];
2.2.1.6 开始播放

在播放器的代理方法- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event 代理中KSMediaPlayerEvent_IsPrepared时间回调之后调用- (void)play方法播放

如果设置了《player.shouldAutoplay = YES》则此步骤可以省略
  • 示例代码
#pragma mark KSMediaPlayerDelegate

/// 播放器事件回调代理
/// - Parameters:
/// - mediaPlayer: 播放器实例
/// - event: 播放器事件
- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event {
switch (event) {
case KSMediaPlayerEvent_IsPrepared: {//播放器准备完成
[mediaPlayer play];//开始播放
}
break;
default:
break;
}
}
2.2.1.7 销毁播放器

当不再需要播放器时,需要及时停止播放和销毁播放器。

  • 停止播放方法:stop
  • 示例代码
/// 销毁播放器
- (void)destroyPlayer {
[self.player stop];//停止播放
[self.player destroy];//销毁播放器资源
self.player = nil;//属性置空,销毁播放器实例
}

2.2.2 直播播放

2.2.2.1 创建播放器

创建直播播放器只要初始化实例就好

  • 示例代码
KSLivePlayer *player = [[KSLivePlayer alloc] init];
player.delegate = self;//设置播放器代理
2.2.2.2 设置显示视图

播放器的显示视图需要加到父视图上,才能正常显示视频画面。

  • 示例代码
//将播放器视图加载到父视图中
[self.playerView addSubview:player.playerView];

//设置播放视图约束
player.playerView.translatesAutoresizingMaskIntoConstraints = NO;
[player.playerView.leadingAnchor constraintEqualToAnchor:self.playerView.leadingAnchor].active = YES;
[player.playerView.trailingAnchor constraintEqualToAnchor:self.playerView.trailingAnchor].active = YES;
[player.playerView.widthAnchor constraintEqualToAnchor:self.playerView.widthAnchor].active = YES;
[player.playerView.heightAnchor constraintEqualToAnchor:self.playerView.heightAnchor].active = YES;
2.2.2.3 设置数据源

需要给直播播放器设置直播数据源实例,数据源实例封装了直播url地址等信息。

  • 示例代码
NSString *url = @"https://*******";
//初始化数据源实例
KSLiveDataSource *dataSource = [KSLiveDataSource sourceWithURL:[NSURL URLWithString:url] streamId:@"test_stream_id"];
//播放器设置数据源
[player setDataSource:dataSource];
2.2.2.4 开始播放
  • 示例代码
//开始播放
[player play];
2.2.2.5 销毁播放器

当不再需要播放器时,需要及时销毁播放器。

  • 示例代码
/// 销毁播放器
- (void)destroyPlayer {
[self.player destroy];//销毁播放器资源
self.player = nil;//属性置空,销毁播放器实例
}


上一篇:集成SDK下一篇:SDK API
该篇文档内容是否对您有帮助?
有帮助没帮助