RBSDKPlayer
简介
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) {}