From 973a748826679063d1400a61794bf9b93e4c7ab5 Mon Sep 17 00:00:00 2001 From: Steven Baughman Date: Thu, 16 Jul 2020 10:21:05 -0400 Subject: [PATCH] Add support for Fairplay --- ios/BrightcovePlayer.m | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/ios/BrightcovePlayer.m b/ios/BrightcovePlayer.m index 1657d421..ebdb2409 100644 --- a/ios/BrightcovePlayer.m +++ b/ios/BrightcovePlayer.m @@ -1,6 +1,7 @@ #import #import "BrightcovePlayer.h" #import "BrightcovePlayerOfflineVideoManager.h" +#import @interface BrightcovePlayer () @@ -16,7 +17,8 @@ - (instancetype)initWithFrame:(CGRect)frame { } - (void)setup { - _playbackController = [BCOVPlayerSDKManager.sharedManager createPlaybackController]; + + _playbackController = [self createPlaybackController]; _playbackController.delegate = self; _playbackController.autoPlay = NO; _playbackController.autoAdvance = YES; @@ -71,9 +73,18 @@ - (void)loadMovie { #pragma mark BCOVPlaybackControllerDelegate Methods - (id)createPlaybackController { - BCOVBasicSessionProviderOptions *options = [BCOVBasicSessionProviderOptions alloc]; - BCOVBasicSessionProvider *provider = [[BCOVPlayerSDKManager sharedManager] createBasicSessionProviderWithOptions:options]; - return [BCOVPlayerSDKManager.sharedManager createPlaybackControllerWithSessionProvider:provider viewStrategy:nil]; + + // Create a BCOVFPSBrightcoveAuthProxy object. + // Use the built-in authorization proxy to take advantage of Dynamic Delivery. + // The application id and publisher id are not needed with Dynamic Delivery. + // You also don't need to worry about retrieving any application certificates. + BCOVFPSBrightcoveAuthProxy *proxy = [[BCOVFPSBrightcoveAuthProxy alloc] initWithPublisherId:nil + applicationId:nil]; + + BCOVBasicSessionProvider *psp = [BCOVPlayerSDKManager.sharedManager createBasicSessionProviderWithOptions:nil]; + BCOVBasicSessionProvider *fsp = [BCOVPlayerSDKManager.sharedManager createFairPlaySessionProviderWithAuthorizationProxy:proxy upstreamSessionProvider:psp]; + + return [BCOVPlayerSDKManager.sharedManager createPlaybackControllerWithSessionProvider:fsp viewStrategy:nil]; } - (void)playbackController:(id)controller didAdvanceToPlaybackSession:(id)session