Demo源碼提供了播放器的常用功能示例,集成播放器SDK前,可以先運行Demo源碼以了解和體驗播放器SDK的功能。您也可以不單獨集成SDK,直接集成完整的Demo源碼來直接使用播放器SDK,或根據需要集成Demo源碼中的部分模塊來使用。
體驗Demo
體驗Demo提供了完整的產品級的交互UI和業務源碼,包含短視頻、播放器和上傳等SDK。您可以掃描二維碼下載Demo App體驗阿里云播放器相關功能。二維碼地址請參見Demo體驗。同時阿里云也免費提供Android播放器SDK Demo源碼。iOS端播放器SDK Demo源碼中內置了UI,以下分別介紹使用和不使用內置的UI來集成播放器Demo源碼的場景及操作步驟。
場景 | 說明 |
運行完整Demo(含內置UI) | 適用于需要使用內置UI,且想要使用Demo源碼中提供的所有功能。 此場景下無需單獨集成SDK,直接導入完整的Demo源碼并運行即可。 |
集成Demo模塊(含內置UI) | 適用于需要使用內置UI,但只想使用Demo源碼中的部分功能。 此場景下無需單獨集成SDK,只需選擇性的導入Demo源碼中的功能模塊運行即可。 |
集成Demo(不含內置UI) | 適用于不需要內置UI(自定義UI或不使用UI),又想省去自己開發的麻煩,直接使用Demo中封裝好的功能。 此場景下需要先集成SDK,再集成Demo中的相關文件。 |
環境要求
類別 | 說明 |
系統版本 | 支持iOS 9.0及以上版本。 |
手機芯片 | 架構要求:
|
開發工具 | 推薦使用Xcode,本文操作步驟基于Xcode開發。下載地址:Xcode。 |
前提條件
下載iOS端播放器SDK包(包含了播放器SDK及Demo源碼),推薦下載使用最新版本。下載地址請參見播放器SDK。
解壓后的目錄結構如下:
文件名 | 作用 |
demo | 播放器的Demo源碼。Demo源碼的目錄結構參見表 2。 |
doc | 播放器API文檔。 |
sdk | 播放器SDK的framework庫。 |
ReleaseNote | 版本說明。 |
demo目錄結構如下:
模塊名 | 模塊作用 |
AlivcBasicVideo | 播放器基礎核心模塊,對應播放器SDK Api調用邏輯。 說明 此模塊必須導入,播放器SDK核心庫。 |
AlivcPlayVideo | 播放相關模塊,對應播放器調用的示例代碼。 說明 此模塊基于AlivcBasicVideo,使用此模塊必須導入AlivcBasicVideo。 |
AlivcCommon | 阿里云項目公共模塊,包括一些工具類。 說明 此模塊必須導入,無論導入Demo中的哪一個和播放器相關的模塊,都需要導入此模塊。 |
AliyunVideoClient_Entrance.xcodeproj | Xcode組織工程項目的文件。 |
AliyunVideoClient_Entrance.xcworkspace | 阿里云項目工程總入口,需要打開xcworkspace文件使用Xcode編譯運行。 |
Podfile | 使用cocoapods管理第三方庫文件。 |
Podfile.lock | 使用cocoapods生成的下載的第三方庫版本相關信息。 |
Pods | 使用cocoapods生成的下載的第三方庫文件目錄。 |
運行完整Demo(含內置UI)
通過使用Xcode運行完整的播放器SDK Demo包,可不再單獨集成SDK,直接開始使用包含了內置UI的播放器功能。
在demo目錄下選擇AliyunVideoClient_Entrance.xcworkspace,雙擊使用Xcode打開工程。
使用Xcode打開工程后,選中紅框中AliyunVideoClient_Entrance,然后將bundle identifier替換為自己的。
替換bundle id的同時,如果下載的播放器Demo指向的播放器SDK版本是5.5.3.0以上的,則需要在Info中增加對license的支持。申請配置license,將獲取的licenseKey填入Info中的AlivcLicenseKey條目的Value中;將license.crt文件放到工程如紅框目錄下。
集成Demo模塊(含內置UI)
通過選擇導入播放器SDK Demo源碼中的部分模塊,選擇性的使用封裝好的包含內置UI播放器的部分功能。
將AlivcBasicVideo、AlivcPlayVideo和AlivcCommon文件夾整體拷貝到自己建的代碼工程中去。
可以在拷貝上述三個文件夾的時候,分別將文件夾中的Example、LiCENSE、README.md文件刪除,只保留podspc和同名子文件夾內容,減少工程包體大小。
在上述三個文件夾同級目錄下創建Podfile文件,實現組件化工程。按照下圖紅框的形式pod本地podspec文件。
執行pod install后,會自動生成pod相關內容,里面包含有集成到工程的AlivcBasicVideo、AlivcPlayVideo和AlivcCommon文件夾內容,以及播放器SDK pod集成文件。
根據體驗Demo編譯運行界面,含有內置UI功能代碼入口在AlivcPlayVideo組件下AlivcPlayVideo/Classes文件夾下內容,分別是:
UI功能
UI功能代碼文件夾入口
UI功能代碼入口ViewController
視頻播放
PlayConfig
AlivcVideoPlayConfigViewController
播放列表
PlayList
SimplePlayerViewController
直播時移
TimeShift
AlivcVideoPlayTimeShiftViewController
在工程首頁ViewController中執行跳轉到相應的UI功能代碼入口ViewController中。如視頻播放界面跳轉邏輯如下:
#import "AlivcVideoPlayConfigViewController.h" // 跳轉邏輯 AlivcVideoPlayConfigViewController *vc = [[AlivcVideoPlayConfigViewController alloc] init]; [self.navigationController pushViewController:vc animated:YES];
說明如果不需要全部內置UI功能,可以自行選擇刪除相應的AlivcPlayVideo組件的UI功能代碼文件夾入口,以及在AlivcBasicVideo組件下的AlivcBasicVideo/Assets文件夾下的對應資源文件。
集成Demo(不含內置UI)
播放器Demo中包含許多內置UI,如果您不需要內置UI(自定義UI或不使用UI),又想省去自己開發的麻煩,直接使用Demo中封裝好的功能,則可以通過以下步驟實現。
集成播放器SDK。
可以直接復用AlivcBasicVideo組件下的AlivcBasicVideo.podspec,pod集成播放器SDK。
也可以自行在工程Podfile文件中pod集成,或是工程合適的地方本地集成,請參見集成iOS端播放器SDK。
集成Demo中部分代碼。
可以使用AlivcBasicVideo組件文件夾下AlivcBasicVideo/Classes/AlivcBasicVideo路徑下的文件選擇性集成到工程中使用。
Classes/AlivcBasicVideo/LongBasicView文件夾下的AlivcLongVideoPlayView文件是封裝好的播放窗口View組件,可以將AlivcLongVideoPlayView文件及依賴的其他文件集成到工程中進行使用。
使用AlivcLongVideoPlayView。
在播放頁面添加AlivcLongVideoPlayView實例。
#import "AlivcLongVideoPlayView.h" @interface AlivcLongVideoViewController ()<AliyunVodPlayerViewDelegate> @property (nonatomic, strong) AlivcLongVideoPlayView *playerView; @end - (void)viewDidLoad { [self.view addSubview:self.playerView]; } - (AlivcLongVideoPlayView *)playerView { if (!_playerView) { _playerView = [[AlivcLongVideoPlayView alloc]init]; _playerView.delegate = self; } return _playerView; }
調用播放控制相關邏輯。
/// 準備播放,可根據對外的方法任選調用 // 傳入url進行準備播放 NSURL *URL = [NSURL URLWithString:@"xxxx"]; // xxxx 代表url字符串 [self.playerView playViewPrepareWithURL:URL]; // 傳入AlivcVideoPlayPlayerConfig實例進行準備播放 AlivcVideoPlayPlayerConfig *config = [[AlivcVideoPlayPlayerConfig alloc] init]; config.sourceType = SourceTypeUrl; config.urlSource = [[AVPUrlSource alloc] urlWithString:@"xxxx"]; [self.playerView playWithPlayerConfig:config]; // 開始播放 [self.playerView start]; // 暫停播放 [self.playerView pause]; // 停止播放 [self.playerView stop]; // 銷毀播放器 [self.playerView releasePlayer];
說明上述代碼展示了部分接口,其余部分的接口可以參照AlivcBasicVideo組件文件的示例代碼來使用,也可以根據播放器SDK的API接口文檔自己創建播放器實例進行播放。
故障排除
遇到播放器相關問題可以參考常見問題進行排查解決。