RBSDKPlayer 1.0.3

RBSDKPlayer 1.0.3

Rhinobird Inc.Bastian Suarez 维护。



 
依赖
AWSS3~> 2.4.0
MBCircularProgressBar~> 0.3
Mixpanel~> 3.2
NHNetworkTime~> 1.7
SDWebImage~> 5.8
XCDYouTubeKit~> 2.5
Socket.IO-Client-Swift~> 15.0
GoogleAds-IMA-iOS-SDK~> 3.7
 

  • Rhinobird Inc.

RBSDKPlayer

Version Platform

简介

rhinobird SDK 支持Rhinobird托管的内容。

我们正在努力使此 SDK 完全公开,但在同时在,为了使其工作,您需要直接从我们那里获得授权,发送电子邮件给我们,我们将向您发送使这项工作正常工作所需的密钥。

文档

此项目的文档可在 此处 找到。

变更日志

此项目的完整变更日志可在 此处 找到。

使用 CocoaPods 安装 SDK

CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器。有关更多信息,请参阅 安装指南。您可以按照以下命令安装它。

$ gem install cocoapods

Podfile

要使用 CocoaPods 将 RBSDKPlayer 集成到您的 iOS 项目中,只需在您的 Podfile 中添加以下内容:

source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/brightcove/BrightcoveSpecs.git'

platform :ios, '10.0'

target 'AppTargetName' do
  pod 'RBSDKPlayer', '~> 1.0.3'
  pod 'YoutubePlayer-in-WKWebView', :git => 'https://github.com/rhinobird/YoutubePlayer-in-WKWebView.git'
  pod 'Brightcove-Player-Core/dynamic', '~> 6.4'
end

然后运行安装命令

$ pod install

要求

最低 iOS 目标:10.0

使用方法

RBSDKPlayer 适用于 Objective-C 和 Swift 项目。有多种方法可以将控制器添加为子视图,将 RBSDKRhinobirdPlayerViewController 视为任何其他控制器。这只是示例。

Objective-C 示例项目可在此处找到 这里。Swift 示例项目可在此处找到 这里

通过设置安全密钥与访问密钥来初始化 SDK

第一步是配置用于身份验证的 sdk,使用提供的密钥。如果您没有这些密钥,请参阅本文件的 简介部分

// Objective-C
[RBSDKV2 setKeysWithClientId:@""
                clientSecret:@""
                   accountId:@""];
// Swift
SDK.setKeys(clientId: "",
            clientSecret: "",
            accountId: "")

创建属性

// Objective-C
@property (weak, nonatomic) IBOutlet UIView *playerContainerView;
@property (strong, nonatomic) RBSDKPlayerViewController *playerController;
// Swift
@IBOutlet weak var playerContainerView: UIView!
var playerController: RBSDKPlayerViewController?

如果需要,将它们连接到接口文件。

在加载播放器之前设置一切

在创建播放器之前,请确保通过调用 loadAsynchronouslyWithCompletionHandler: 方法加载 SDK 核心的所有内容,并在 completionHandler 中设置播放器。同时,重要的是在主线程上加载播放器。

// Objective-C
[RBSDKV2 loadAsynchronouslyWithCompletionHandler:^(BOOL success, NSError * error) {
    if (success) {
        dispatch_async(dispatch_get_main_queue(), ^{
            [self loadPlayer];
        });
    } else if (error) {
        NSLog(@"Error trying to configure the sdk: %@", error.localizedDescription);
    }
}];
// Swift
SDK.loadAsynchronously { (success, error) in
    if (success) {
        DispatchQueue.main.async {
            self.loadPlayer()
        }
    } else if let error = error {
        print("Error trying to configure the sdk: \(error)")
    }
}

使用 Rhinobird 云数据加载播放器

// Objective-C
- (void)loadPlayer {
    RBSDKPlayerOption options = (RBSDKPlayerOptionAutoPlay);
    NSString *reelId = <#Reel Id#>;
    self.playerController = [[RBSDKRhinobirdPlayerViewController alloc] initWithReelId:reelId
                                                                               options:options
                                                                              delegate:self];

    [self addChildViewController:self.playerController];
    self.playerController.view.frame = self.playerContainerView.bounds;
    [self.playerContainerView addSubview:self.playerController.view];
}
// Swift
func loadPlayer() {
    let options: RBSDKPlayerOption = [.autoPlay]
    let reelId = <#Reel Id#>
    playerController = RBSDKRhinobirdPlayerViewController(reelId: reelId,
                                                          options: options,
                                                          delegate: self)

    guard let playerController = playerController else { return }
    addChild(playerController)
    playerController.view.frame = playerContainerView.bounds
    playerContainerView.addSubview(playerController.view)
}

代理

如果您需要有关播放器的反馈,请在与您的类相关的 RBSDKPlayerViewControllerDelegate 方法上实现。请参阅 文档 以获取更多详细信息。

// Objective-C
# pragma mark - RBSDKPlayerViewControllerDelegate

- (void)playerControllerLoadDidSucceed:(BOOL)succeed withError:(NSError *)error {}
- (void)playerControllerIsReadyToPlay {}
- (void)playerControllerDidSwitchDirection:(RBSDKPlayerContentDirection)contentDirection media:(RBSDKPlayerMediaInfo *)media {}
- (void)playerControllerDidChangePlayingStatus:(BOOL)isPlaying {}
- (UIColor *)playerControllerColor {}
- (void)playerControllerCurrentMedia:(RBSDKPlayerMediaInfo *)media watchedTime:(float)watchedTime {}
- (void)playerControllerDidChangeFullscreenStatus {}
- (void)playerControllerWillChangeFullscreenStatus {}
- (void)playerControllerWillReachEnd:(RBSDKPlayerContentDirection)contentDirection completionHandler:(void(^)(void))completionHandler {}
- (void)playerControllerShowingControls:(BOOL)showingControls {}
// Swift
// MARK: RBSDKPlayerViewControllerDelegate

func playerControllerLoadDidSucceed(_ succeed: Bool, withError error: Error?) {}
func playerControllerIsReadyToPlay() {}
func playerControllerDidSwitch(_ contentDirection: RBSDKPlayerContentDirection, media: RBSDKPlayerMediaInfo) {}
func playerControllerDidChangePlayingStatus(_ isPlaying: Bool) {}
func playerControllerColor() -> UIColor {}
func playerControllerCurrentMedia(_ media: RBSDKPlayerMediaInfo, watchedTime: Float) {}
func playerControllerDidChangeFullscreenStatus() {}
func playerControllerWillChangeFullscreenStatus() {}
func playerControllerWillReachEnd(_ contentDirection: RBSDKPlayerContentDirection, completionHandler: @escaping () -> Void) {}
func playerControllerShowingControls(_ showingControls: Bool) {}