七牛雲直播 iOS播放器SDK接入流程

代碼下載地址:https://github.com/pili-engineering/PLPlayerKit
系統要求: iOS7及以上版本git

代碼集成

方式一:CocoaPods的方法

直接在Podfile中添加github

$ pod 'PLPlayerKit'

而後url

$ pod install

或者spa

$ pod update

運行你工程的 Workspace,就集成完畢了.net

方式二:非CocoaPods集成

詳情請訪問:非Cocoapods集成設計

快速接入項目開始
在須要調用的地方添加代理

#import <PLPlayerKit/PLPlayer.h>

初始化 PLPlayerOptioncode

// 初始化 PLPlayerOption 對象
PLPlayerOption *option = [PLPlayerOption defaultOption];

// 更改須要修改的 option 屬性鍵所對應的值
[option setOptionValue:@15 forKey:PLPlayerOptionKeyTimeoutIntervalForMediaPackets];

初始化 PLPlayer視頻

// 初始化 PLPlayer,self.URL是須要播放的直播的URL地址,目前支持 http (url 以 http:// 開頭) 與 rtmp (url 以 rtmp:// 開頭) 協議。
self.player = [PLPlayer playerWithURL:self.URL option:option];

// 設定代理 (optional)
self.player.delegate = self;

獲取播放器的視頻輸出的 UIView 對象並添加爲到當前 UIView 對象的 Subview對象

//獲取視頻輸出視圖並添加爲到當前 UIView 對象的 Subview
[self.view addSubview:player.playerView];

開始/暫停操做

// 播放
[self.player play];

// 中止
[self.player stop];

// 暫停
[self.player pause];

// 繼續播放
[self.player resume];

播放器狀態獲取

// 實現 <PLPlayerDelegate> 來控制流狀態的變動
- (void)player:(nonnull PLPlayer *)player statusDidChange:(PLPlayerStatus)state {
    // 這裏會返回流的各類狀態,你能夠根據狀態作 UI 定製及各種其餘業務操做
    // 除了 Error 狀態,其餘狀態都會回調這個方法
}

- (void)player:(nonnull PLPlayer *)player stoppedWithError:(nullable NSError *)error {
    // 當發生錯誤時,會回調這個方法
}

音頻部分的特別說明

由於 iOS 的音頻資源被設計爲單例資源,因此若是在 player 中作的任何修改,對外均可能形成影響,而且帶來不能預估的各類問題。

爲了應對這一狀況,PLPlayerKit 採起的方式是檢查是否能夠播放及是否能夠進入後臺,而在內部不作任何設置。具體是經過擴展 AVAudioSession 來作到的,提供了兩個方法,以下:

/*!
 * @description 檢查當前 AVAudioSession 的 category 配置是否能夠播放音頻. 當爲 AVAudioSessionCategoryAmbient,
 * AVAudioSessionCategorySoloAmbient, AVAudioSessionCategoryPlayback, AVAudioSessionCategoryPlayAndRecord
 * 中的一種時爲 YES, 不然爲 NO.
 */
+ (BOOL)isPlayable;

/*!
 * @description 檢查當前 AVAudioSession 的 category 配置是否能夠後臺播放. 當爲 AVAudioSessionCategoryPlayback,
 * AVAudioSessionCategoryPlayAndRecord 中的一種時爲 YES, 不然爲 NO.
 */
+ (BOOL)canPlayInBackground;

分辨能夠檢查是否能夠播放以及當前 category 的設置是否能夠後臺播放。

相關文章
相關標籤/搜索