2 快速整合
本文為技術文件,需要閱讀者具備基本的 iOS 開發能力,且需配置蘋果的開發環境,安裝有蘋果官方 IDE:Xcode 10.0 以上。
2.1 相容裝置
點播 SDK 2.20.1 版本起,支援 iOS 11.0 以上 iOS 裝置。點播 SDK 2.20.1 以下版本支援 iOS 8.0 以上 iOS 裝置。
2.2 接入 SDK
使用 CocoaPods 將點播 SDK 和上傳 SDK 整合到 Xcode 專案中。首先,在專案中新建一個 Podfile 檔案,並在 Podfile 中指定:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
target 'TargetName' do
pod 'PolyvVodSDK'
end
然後,執行如下指令:
$ pod install
2.3 開源元件
點播專案提供了一系列開源元件,給開發者提供了更多可選功能,如影片彈幕、播放器皮膚、問答功能等。
開源元件位於 demo 專案中的 PolyvOpenSourceModule 資料夾下,如果想使用開源元件提供的功能,需將整個資料夾加入到你的專案中。然後,在上文提到的 Podfile 檔案中新增以下內容:
pod 'PLVVodDanmu'
pod 'PLVSubtitle'
pod 'PLVMasonry'
開源元件中用到了 UIStackView,但 iOS 8 不支援 UIStackView,如果需要支援 iOS 8,需在 Podfile 檔案中新增以下第三方函式庫:
pod 'FDStackView'
2.4 點播初始化
訪問保利威視訊雲平台取得帳號資訊。
使用 PLVVodSettings 進行初始化,快速整合時,可使用如下方法進行初始化(不建議在正式環境使用該初始化方法):
/** 使用加密串配置账号
@param configString 加密串
@param error 解密、配置过程的错误
@return 新的 PLVVodSettings 静态对象
*/
+ (instancetype)settingsWithConfigString:(NSString *)configString error:(NSError **)error;
更安全的初始化方式在 3.初始化【3.2 SDK 配置】一節有更詳細的講述。
2.5 影片播放
PLVVodSkinPlayerController 是開源元件提供的帶有預設皮膚的播放器,繼承於點播 SDK 中的 PLVVodPlayerViewController。首先,在頁面上建立一個 PLVVodSkinPlayerController 物件,以及放置播放器的 UIView 物件。程式碼範例如下:
#import “PLVVodSkinPlayerController.h”
@interface UIViewController ()
@property (nonatomic, strong) PLVVodSkinPlayerController *player;
@property (nonatomic, weak) UIView *playerPlaceholder;
@end
@implementation UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
PLVVodSkinPlayerController *player = [[PLVVodSkinPlayerController alloc] init];
[player addPlayerOnPlaceholderView:self.playerPlaceholder
rootViewController:self];
self.player = player;
}
@end
播放器 player 可自動在 playerPlaceholder 中實現自動佈局,以及半螢幕/全螢幕的切換。
點播 SDK 將影片資料封裝類別 PLVVodVideo 中,透過 PLVVodVideo 物件將影片資料傳遞給播放器。PLVVodVideo 包含影片ID、影片標題、影片時長等資料。範例程式碼如下:
self.player.video = video; // video 为 PLVVodVideo 对象
[self.player play]; // 开始播放
[self.player pause]; // 暂停播放
2.6 影片下載
點播 SDK 透過 PLVVodDownloadManager 進行下載管理,下載影片方法宣告如下:
/** 使用后台设置的默认画质添加至下载队列
@param video PLVVodVideo 视频对象
@return 下载信息
*/
- (PLVVodDownloadInfo *)downloadVideo:(PLVVodVideo *)video;
類別 PLVVodDownloadInfo 封裝了影片的下載資訊,包含了下載狀態、下載速率、下載進度等。將影片加入至下載佇列後,可透過方法 -startDownload 啟動下載,透過方法 -stopDownload 停止下載。範例程式碼如下:
[[PLVVodDownloadManager sharedManager] downloadVideo:video]; // 将视频 video 添加到下载队列
[[PLVVodDownloadManager sharedManager] startDownload]; // 开始下载
[[PLVVodDownloadManager sharedManager] stopDownload]; // 停止下载
PLVVodDownloadManager 使用 block 對影片下載進行監聽,範例程式碼如下:
PLVVodDownloadManager *downloadManager = [PLVVodDownloadManager sharedManager];
downloadManager.downloadCompleteBlock = ^(PLVVodDownloadInfo *info) {
NSLog(@"video vid %@ download success", info.vid);
};
downloadManager.stateDidChangeBlock = ^(PLVVodDownloadInfo *info) {
NSLog(@"video vid %@ state change to %zd", info.vid, info.state);
};
downloadManager.downloadErrorHandler = ^(PLVVodVideo *video, NSError *error) {
NSLog(@"video vid %@ download error: %@", video.vid, error);
};
downloadManager.completeBlock = ^{
NSLog(@"all video download success");
};
