概要
この例では、 Brightcove 再生 API から返された動画を再生します。これは、Video Cloud ライブラリからコンテンツを取得するための最新かつ推奨される API です。
このオプションでは、ポリシーキーが必要です。ポリシーキーに慣れていない場合は、「ポリシー API の概要」を参照してください。
はじめに
この例では、ビデオファイルの内部配列からビデオを再生します。
以下の手順に従って、iOS 用 Brightcove Player SDK を使用するアプリプロジェクトのセットアップについて理解を深めます。次の各について、完全なコードを表示できます。
このサンプルを試すには、次の 2 つの方法があります。
サンプルをダウンロードする
実験のためにXcodeプロジェクト全体をダウンロードしてください。
- iOS 用ネイティブ SDK サンプルをローカルシステムに複製またはダウンロードします。
- プレーヤー/ビデオCloudBasicPlayer/objCサンプルアプリに移動します。
pod install
コマンドを実行します。- 新しく作成したワークスペースを開いて実行します。
詳細については、ネイティブ SDK for iOS/tvOS 用のサンプルアプリの実行を参照してください。
このガイドの手順に従ってアプリを構築する
以下の手順に従って、tvOS 用 Brightcove Player SDK を使用するアプリプロジェクトのセットアップについて理解を深めます。次の各について、完全なコードを表示できます。
プロジェクトを作成する
Xcodeでプロジェクトを設定します。次に、プロジェクトへの依存関係とともに Brightcove Player SDK を追加します。
Xcodeプロジェクトをセットアップする
アプリ用の新しい Xcode プロジェクトを作成します。
-
Xcodeで新しいiOSプロジェクトの作成を開始します。[ 新しい Xcode プロジェクトを作成する ] を選択します。または、Xcodeトップメニューで、[ ファイル ]、[ 新規 ]、[ プロジェクト ] を選択できます。
-
テンプレートに「単一ビューアプリケーション」を選択し、「次へ」を選択します。
-
プロジェクト情報を次のように設定します。
- 製品名:シンプルなビデオ再生
- チーム:なし
[チーム] フィールドはオプションです。App Storeでアプリを配布する場合は、Apple開発者プログラムを通じて所属するチームを選択する必要があります。コード署名にはチーム名が必要です。この例では、[なし] を選択します。
- 組織名:あなたの会社名
- 組織識別子: com.example-company
これにより、製品名がアプリストアで一意になります。
-
プロジェクトを保存する場所を選択し、プロジェクトを作成します。
- 今すぐプロジェクトを閉じてください(はい、閉じてください。これは重要です!)
SDK とその依存関係をプロジェクトに追加する
SDK とその依存関係をプロジェクトに追加する最も簡単な方法は、CocoaPods を使用することです。
CocoaPods は、プロジェクトにライブラリを追加する依存関係マネージャです。必須ではありませんが、インストールが簡単になります。CocoaPods をインストールするには、 CocoaPods サイトの手順を参照してください。
-
プロジェクトフォルダに、 Podfile (ファイル拡張子なし) というプレーンテキストファイルを作成します。
-
テキストエディタを使用して、Podfile に次のコード行を追加して保存します。このコードは次のことを行います。
- 1 行目:Brightcoveポッドスペックの GitHub の場所を指します。
- 3行目:静的ライブラリの代わりにフレームワークを使用するように Pod を設定します。
- 5行目:iOS プラットフォームのバージョンを定義します。
-
7~9行目:Brightcoveのネイティブプレーヤー SDK をインストールします。
- iOS 用 Brightcove ネイティブ SDK の概要ドキュメントから、現在のネイティブ SDK バージョンを取得します。
'6.3.11'
値を現在の SDK バージョン番号に置き換えます。-
依存関係の管理の詳細については、「 CocoaPods を使用して依存関係を管理する方法」を参照してください。
source 'https://github.com/brightcove/BrightcoveSpecs.git' use_frameworks! platform :ios, '11.0' # (or whatever version you want) target 'Simple-Video-Playback' do pod 'Brightcove-Player-Core', '6.3.11' end
-
ターミナルセッションを開き、シンプルビデオ再生の Xcode プロジェクトフォルダーに移動します。
-
ターミナルセッションで、次のコマンドを入力します。
pod install
を選択し、 Return キーを押して実行します。ターミナルに、Brightcove Player SDK がプロジェクトに追加されたことを示す一連のメッセージが表示されます。
-
最後の行に注意してください、これは重要です—この時点から、を開く必要があります Simple-Video-Playback.xcworkspace Xcodeのファイル、いいえ NS Simple-Video-Playback.xcodeproj ファイル。
pod install
このコマンドにより、.xcworkspace
プロジェクト用にこのファイルが作成されます。
動画アプリをコーディングする
簡単なビデオ再生アプリのコードを作成します。
- Xcodeで、単純なビデオ再生.xcWorkspaceファイルを開きます。
アプリのオーディオ動作を設定する
オーディオセッションは、アプリレベルでオーディオの動作を処理します。AvaudioSessionクラスの詳細については、こちらをご覧ください。
このサンプルでは、を使用しますAVAudioSessionCategoryPlayback
。これにより、画面がロックされ、Ring/Silent スイッチがサイレントに設定されている場合でも、オーディオが再生されます。それを簡単に保つために、このためのコードをアプリケーションデリゲートに配置します。
-
プロジェクトで、アプリケーションデリゲート実装ファイル ( appDelegate.m ) を開きます。
-
didFinishLaunchingWithOptions
メソッドで、オーディオセッションカテゴリを設定するコードを追加します。AVFoundation
フレームワークをインポートしてください。- 私たちはそれが期待したときにオーディオが再生されるようにするために、以下のコードが必要です。たとえば、このコードを設定しないと、ミュートスイッチがオンになったときにビデオが聞こえません。
- サンプルで簡単にするために、これをアプリデリゲートに入れています。独自のアプリでこれを使用する方法の詳細については、「オーディオセッションプログラミングガイド」を参照してください。
// AppDelegate.m // Simple-Video-Playback // // Copyright © 2018 Brightcove. All rights reserved. // #import "AppDelegate.h" #import <AVFoundation/AVFoundation.h> @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. NSError *categoryError = nil; BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&categoryError]; if (!success) { NSLog(@"AppDelegate Debug - Error setting AVAudioSession category. Because of this, there may be no sound. `%@`", categoryError); } return YES; } - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } - (void)applicationWillEnterForeground:(UIApplication *)application { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } - (void)applicationDidBecomeActive:(UIApplication *)application { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } @end
ビューコントローラクラス宣言を構築する
ビューコントローラクラスを更新して Brightcove SDK を含めます。
-
プロジェクトで、ビューコントローラのヘッダファイル ( ViewController.h ) を開きます。
Brightcoveプレーヤーの SDK ヘッダーファイルをインポートする
-
Brightcove Player SDK に次の import ステートメントを追加します。
@import BrightcovePlayerSDK;
コードを見る
これで、ビューコントローラーのヘッダーが完成しました。ここに完全なコードがあります:
// ViewController.h
// Simple-Video-Playback
//
// Copyright © 2018 Brightcove. All rights reserved.
//
#import <UIKit/UIKit.h>
@import BrightcovePlayerSDK;
@interface ViewController : UIViewController
@end
ビューコントローラ実装の構築
View Controller の実装を更新して、Brightcove カタログサービスから動画を再生します。
-
プロジェクトで、ビューコントローラ実装ファイル ( ViewController.m ) を開きます。
あなたの価値でプロジェクトをカスタマイズする
Video Cloud アカウントにアクセスするには、トークンとプレイリスト ID の値を追加します。
この例では、 Brightcove 再生 API から返された動画を再生します。これは、Video Cloud ライブラリからコンテンツを取得するための最新かつ推奨される API です。ポリシーキーに慣れていない場合は、「ポリシー API の概要」を参照してください。
-
#import
ディレクティブの下に、次の値を追加します。- 12行目です:Brightcove再生 API ポリシーキーを定義します。
- 13行目:ビデオクラウドアカウント ID を定義します。
- 14行目:ビデオクラウドビデオ ID を定義します。
// ** Customize these values with your own account information ** static NSString * const kViewControllerPlaybackServicePolicyKey = @"your policy key"; static NSString * const kViewControllerAccountID = @"your account id"; static NSString * const kViewControllerVideoID = @"your video id";
プロパティを宣言する
-
ViewController インターフェイスセクションで、次のクラス宣言を追加します。
- 16行目です:Brightcoveの代理オブジェクトをに追加します
interface
。これにより、アプリがビデオ再生イベントをリッスンして応答できるようになります。 - 18行目線:クラスを定義します。
BCOVPlaybackService
このクラスは、Playback API からデータを取得するための非同期メソッドを提供します。 - 19行目:を定義します。このには
BCOVPlaybackController
、再生機能を制御するためのメソッドがあります。 - 20行目です:Brightcove UI コントロールのプレーヤービューを定義します。
- 21行目です:ビデオコンテナビューを定義します。
@interface ViewController () <BCOVPlaybackControllerDelegate> @property (nonatomic, strong) BCOVPlaybackService *playbackService; @property (nonatomic, strong) id<BCOVPlaybackController> playbackController; @property (nonatomic) BCOVPUIPlayerView *playerView; @property (nonatomic, weak) IBOutlet UIView *videoContainer; @end
- 16行目です:Brightcoveの代理オブジェクトをに追加します
初期化方法の定義
-
ViewController実装セクションで、
init
を呼び出す関数setup
次のステップで定義する関数。@implementation ViewController #pragma mark Setup Methods - (instancetype)initWithCoder:(NSCoder *)coder { self = [super initWithCoder:coder]; if (self) { [self setup]; } return self; }
プレーヤーを設定する
-
init
関数の下に、setup
アプリケーションのロード時に呼び出されるという名前の関数を作成します。- 40行目です:共有マネージャを使用して再生コントローラを作成します。
BCOVPlayerSDKManager
このクラスは、SDK エコシステム内に他のオブジェクトを作成できるシングルトンです。 -
42行目:オプション:
BCOVVideo
クラスを上書きした場合、または Brightcove プレーヤーと再生サービスまたはカタログを使用しない場合は、Video Cloud アカウント ID を Video Cloud Analytics に送信する必要があります。これにより、このアプリのデータを Video Cloud Analytics で表示できます。 - 44〜46行:デリゲートを設定し、自動アドバンスと自動再生機能をオンにします。
-
48行目です:アカウント ID とポリシーキーでプレイバックサービスを初期化します。
- (void)setup { _playbackController = [BCOVPlayerSDKManager.sharedManager createPlaybackController]; _playbackController.analytics.account = kViewControllerAccountID; // Optional _playbackController.delegate = self; _playbackController.autoAdvance = YES; _playbackController.autoPlay = YES; _playbackService = [[BCOVPlaybackService alloc] initWithAccountId:kViewControllerAccountID policyKey:kViewControllerPlaybackServicePolicyKey]; }
- 40行目です:共有マネージャを使用して再生コントローラを作成します。
プレーヤーを設定する
-
viewDidLoad
関数で、次の操作を実行します。- 56行目です:標準の VOD レイアウトを使用して、Brightcoveプレーヤーコントロールを作成および設定します。
- 58行線:プレーヤービューをメインビューのサブビューとして追加します。
- 59行:自動サイズ変更マスクをオフにします。
- 60~65行目線:自動レイアウトを使用して、プレーヤービューの動的拘束を定義します。
- 66行目です:プレーヤービューを、関連付けられたグローバル変数に割り当てます。
- 69行目線:プレーヤービューを再生コントローラに関連付けます。
-
71号線:
requestContentFromPlaybackService
関数を呼び出します。この関数は次のステップで定義します。
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // Set up our player view. Create with a standard VOD layout. BCOVPUIPlayerView *playerView = [[BCOVPUIPlayerView alloc] initWithPlaybackController:self.playbackController options:nil controlsView:[BCOVPUIBasicControlView basicControlViewWithVODLayout] ]; _videoContainer addSubview:playerView]; playerView.translatesAutoresizingMaskIntoConstraints = NO; [NSLayoutConstraint activateConstraints:@[ [playerView.topAnchor constraintEqualToAnchor:_videoContainer.topAnchor], [playerView.rightAnchor constraintEqualToAnchor:_videoContainer.rightAnchor], [playerView.leftAnchor constraintEqualToAnchor:_videoContainer.leftAnchor], [playerView.bottomAnchor constraintEqualToAnchor:_videoContainer.bottomAnchor], ]]; _playerView = playerView; // Associate the playerView with the playback controller. _playerView.playbackController = _playbackController; [self requestContentFromPlaybackService]; }
Brightcoveライブラリからコンテンツをリクエストする
ビデオコンテンツを再生するには、Video Cloud ライブラリにビデオをリクエストします。
-
viewDidLoad
関数の下に、requestContentFromPlaybackService
次のような名前の関数を作成します。- (void)requestContentFromPlaybackService { [self.playbackService findVideoWithVideoID:kViewControllerVideoID parameters:nil completion:^(BCOVVideo *video, NSDictionary *jsonResponse, NSError *error) { if (video) { [self.playbackController setVideos:@[ video ]]; } else { NSLog(@"ViewController Debug - Error retrieving video: `%@`", error); } }]; }
コードを見る
これで、ビューコントローラの実装が完了しました。ここに完全なコードがあります:
//
// ViewController.m
// Simple-Video-Playback
//
// Copyright © 2018 Brightcove. All rights reserved.
//
#import "ViewController.h"
// ** Customize these values with your own account information **
static NSString * const kViewControllerPlaybackServicePolicyKey = @"your policy key";
static NSString * const kViewControllerAccountID = @"your account id";
static NSString * const kViewControllerVideoID = @"your video id";
@interface ViewController () <BCOVPlaybackControllerDelegate>
@property (nonatomic, strong) BCOVPlaybackService *playbackService;
@property (nonatomic, strong) id<BCOVPlaybackController> playbackController;
@property (nonatomic) BCOVPUIPlayerView *playerView;
@property (nonatomic, weak) IBOutlet UIView *videoContainer;
@end
@implementation ViewController
#pragma mark Setup Methods
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self)
{
[self setup];
}
return self;
}
- (void)setup
{
_playbackController = [BCOVPlayerSDKManager.sharedManager createPlaybackController];
_playbackController.analytics.account = kViewControllerAccountID; // optional
_playbackController.delegate = self;
_playbackController.autoAdvance = YES;
_playbackController.autoPlay = YES;
_playbackService = [[BCOVPlaybackService alloc] initWithAccountId:kViewControllerAccountID policyKey:kViewControllerPlaybackServicePolicyKey];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Set up our player view. Create with a standard VOD layout.
BCOVPUIPlayerView *playerView = [[BCOVPUIPlayerView alloc] initWithPlaybackController:self.playbackController options:nil controlsView:[BCOVPUIBasicControlView basicControlViewWithVODLayout] ];
[_videoContainer addSubview:playerView];
playerView.translatesAutoresizingMaskIntoConstraints = NO;
[NSLayoutConstraint activateConstraints:@[
[playerView.topAnchor constraintEqualToAnchor:_videoContainer.topAnchor],
[playerView.rightAnchor constraintEqualToAnchor:_videoContainer.rightAnchor],
[playerView.leftAnchor constraintEqualToAnchor:_videoContainer.leftAnchor],
[playerView.bottomAnchor constraintEqualToAnchor:_videoContainer.bottomAnchor],
]];
_playerView = playerView;
// Associate the playerView with the playback controller.
_playerView.playbackController = _playbackController;
[self requestContentFromPlaybackService];
}
- (void)requestContentFromPlaybackService
{
[self.playbackService findVideoWithVideoID:kViewControllerVideoID parameters:nil completion:^(BCOVVideo *video, NSDictionary *jsonResponse, NSError *error) {
if (video)
{
[self.playbackController setVideos:@[ video ]];
}
else
{
NSLog(@"ViewController Debug - Error retrieving video: `%@`", error);
}
}];
}
@end
あなたの価値でプロジェクトをカスタマイズする
アカウント ID の値を設定します。この値は後の手順でBrightcoveに送信されます。
-
#import
ディレクティブの下に、Brightcoveのアカウント ID に独自の値を追加します。これは、アプリを Brightcove に登録するために使用されます。// ** Customize these values with your own account information ** static NSString * const kViewControllerAccountID = @"your account id";
プロパティを宣言する
-
ViewController インターフェイスセクションで、次のデリゲートとクラス宣言を追加します。
- 14行目:Brightcoveの代理オブジェクトをに追加します
interface
。 - 16行目です:を定義します。このには
BCOVPlaybackController
、再生機能を制御するためのメソッドがあります。 - 17行目:Brightcove UI コントロールのプレーヤービューを定義します。
-
18行目線:ビデオコンテナビューを定義します。
@interface ViewController () <BCOVPlaybackControllerDelegate> @property (nonatomic, strong) id<BCOVPlaybackController> playbackController; @property (nonatomic) BCOVPUIPlayerView *playerView; @property (nonatomic, weak) IBOutlet UIView *videoContainer; @end
- 14行目:Brightcoveの代理オブジェクトをに追加します
初期化メソッドを定義する
-
ViewController実装セクションで、
init
を呼び出す関数setup
次のステップで定義する関数。@implementation ViewController #pragma mark Setup Methods - (instancetype)initWithCoder:(NSCoder *)coder { self = [super initWithCoder:coder]; if (self) { [self setup]; } return self; }
プレーヤーを設定する
init
関数の下に、setup
アプリケーションのロード時に呼び出されるという名前のメソッドを作成します。- 37行目線:共有マネージャを使用して再生コントローラを作成します。
BCOVPlayerSDKManager
このクラスは、SDK エコシステム内に他のオブジェクトを作成できるシングルトンです。 - 39行目:アカウント ID を送信して、アプリをBrightcoveに登録します。
-
41-43 行:デリゲートを設定し、自動アドバンスと自動再生機能をオンにします。
- (void)setup { _playbackController = [BCOVPlayerSDKManager.sharedManager createPlaybackController]; _playbackController.analytics.account = kViewControllerAccountID; _playbackController.delegate = self; _playbackController.autoAdvance = YES; _playbackController.autoPlay = YES; }
- 37行目線:共有マネージャを使用して再生コントローラを作成します。
プレーヤーを設定して再生を開始する
-
viewDidLoad
メソッドで次の操作を実行します。- 50~53行目です:ビデオソースの配列を作成します。
videoWithURL
次のステップで関数を定義します。 - 56行目です:標準の VOD レイアウトでプレーヤービューを作成します。
- 58行線:プレーヤービューをメインビューのサブビューとして追加します。
- 59行:自動サイズ変更マスクをオフにします。
- 60~65行目線:自動レイアウトを使用して、プレーヤービューの動的拘束を定義します。
- 66行線:プレーヤービューを再生コントローラに関連付けます。
- 69号線:コントローラの再生キューにビデオ配列を追加します。
-
74行:最初のビデオの再生を開始します。
- (void)viewDidLoad { [super viewDidLoad]; // create an array of videos NSArray *videos = @[ [self videoWithURL:[NSURL URLWithString:@"https://solutions.brightcove.com/bcls/assets/videos/Great_Horned_Owl.mp4"]], [self videoWithURL:[NSURL URLWithString:@"https://solutions.brightcove.com/bcls/assets/videos/Great_Blue_Heron.mp4"]] ]; // Set up our player view. Create with a standard VOD layout. BCOVPUIPlayerView *playerView = [[BCOVPUIPlayerView alloc] initWithPlaybackController:self.playbackController options:nil controlsView:[BCOVPUIBasicControlView basicControlViewWithVODLayout] ]; [_videoContainer addSubview:playerView]; playerView.translatesAutoresizingMaskIntoConstraints = NO; [NSLayoutConstraint activateConstraints:@[ [playerView.topAnchor constraintEqualToAnchor:_videoContainer.topAnchor], [playerView.rightAnchor constraintEqualToAnchor:_videoContainer.rightAnchor], [playerView.leftAnchor constraintEqualToAnchor:_videoContainer.leftAnchor], [playerView.bottomAnchor constraintEqualToAnchor:_videoContainer.bottomAnchor], ]]; _playerView = playerView; // Associate the playerView with the playback controller. _playerView.playbackController = _playbackController; // add the video array to the controller's playback queue [self.playbackController setVideos:videos]; // play the first video [self.playbackController play]; }
- 50~53行目です:ビデオソースの配列を作成します。
残り
-
viewDidLoad
関数の下に、BCOVSources
動画に属する配信方法を設定する関数を作成します。- (BCOVVideo *)videoWithURL:(NSURL *)url { // set the delivery method for BCOVSources that belong to a video BCOVSource *source = [[BCOVSource alloc] initWithURL:url deliveryMethod:kBCOVSourceDeliveryHLS properties:nil]; return [[BCOVVideo alloc] initWithSource:source cuePoints:[BCOVCuePointCollection collectionWithArray:@[]] properties:@{}]; }
コードを見る
これで、ビューコントローラの実装が完了しました。ここに完全なコードがあります:
//
// ViewController.m
// Simple-Video-Playback
//
// Copyright © 2018 Brightcove. All rights reserved.
//
#import "ViewController.h"
// ** Customize these values with your own account information **
static NSString * const kViewControllerAccountID = @"your account id";
@interface ViewController () <BCOVPlaybackControllerDelegate>
@property (nonatomic, strong) id<BCOVPlaybackController> playbackController;
@property (nonatomic) BCOVPUIPlayerView *playerView;
@property (nonatomic, weak) IBOutlet UIView *videoContainer;
@end
@implementation ViewController
#pragma mark Setup Methods
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self)
{
[self setup];
}
return self;
}
- (void)setup
{
_playbackController = [BCOVPlayerSDKManager.sharedManager createPlaybackController];
_playbackController.analytics.account = kViewControllerAccountID; // optional
_playbackController.delegate = self;
_playbackController.autoAdvance = YES;
_playbackController.autoPlay = YES;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// create an array of videos
NSArray *videos = @[
[self videoWithURL:[NSURL URLWithString:@"https://solutions.brightcove.com/bcls/assets/videos/Great_Horned_Owl.mp4"]],
[self videoWithURL:[NSURL URLWithString:@"https://solutions.brightcove.com/bcls/assets/videos/Great_Blue_Heron.mp4"]]
];
// Set up our player view. Create with a standard VOD layout.
BCOVPUIPlayerView *playerView = [[BCOVPUIPlayerView alloc] initWithPlaybackController:self.playbackController options:nil controlsView:[BCOVPUIBasicControlView basicControlViewWithVODLayout] ];
// add the view as a subview of the main view
[_videoContainer addSubview:playerView];
playerView.translatesAutoresizingMaskIntoConstraints = NO;
[NSLayoutConstraint activateConstraints:@[
[playerView.topAnchor constraintEqualToAnchor:_videoContainer.topAnchor],
[playerView.rightAnchor constraintEqualToAnchor:_videoContainer.rightAnchor],
[playerView.leftAnchor constraintEqualToAnchor:_videoContainer.leftAnchor],
[playerView.bottomAnchor constraintEqualToAnchor:_videoContainer.bottomAnchor],
]];
_playerView = playerView;
// Associate the playerView with the playback controller.
_playerView.playbackController = _playbackController;
// add the video array to the controller's playback queue
[self.playbackController setVideos:videos];
// play the first video
[self.playbackController play];
}
- (BCOVVideo *)videoWithURL:(NSURL *)url
{
// set the delivery method for BCOVSources that belong to a video
BCOVSource *source = [[BCOVSource alloc] initWithURL:url deliveryMethod:kBCOVSourceDeliveryHLS properties:nil];
return [[BCOVVideo alloc] initWithSource:source cuePoints:[BCOVCuePointCollection collectionWithArray:@[]] properties:@{}];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
ストーリーボードビューを接続する
接続しますMain.storyboard
で表示videoContainer
プロパティ。
-
Xcodeで、
Main.storyboard
ファイルを開きます。 -
コンパニオンビューで、ビューコントローラシーンを展開し、[ ビューコントローラ ] メニューを展開し、 View オブジェクトを公開します。
-
アシスタントエディタを表示し、
ViewController.m
ファイルを開きます。 -
@property
for の横にある開いた円を選択しvideoContainer
、それを Viewオブジェクトにドラッグしてこれらのコンポーネントを接続します。
メディアセキュリティの管理
アプリトランスポートセキュリティ (ATS) は、アプリと Web サービスの間の安全な接続を強制します。Apple の iOS 9 SDK のリリースで、 App Transport Security (ATS) と呼ばれる新機能が追加されました。
-
アプリには、次のいずれかの状況が適用されます。
-
デフォルトでは、iOS 用 Brightcove ネイティブ SDK はソース選択ポリシーを使用して HTTP ソース上で HTTPS を選択するため、ATS を有効にしてアプリを構築できます。
それで、あなたはあなたのアプリを実行する準備ができています。
-
リモートアセットで HTTP ソースではなく HTTPS を使用する場合は、ATS を有効にしてアプリを構築できます。
それで、あなたはあなたのアプリを実行する準備ができています。
-
HTTP ソースを使用している場合や、アプリで他の HTTP 呼び出しがある場合、次のエラーメッセージが表示されることがあります。
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
つまり、ATS は有効ですが、システムが ATS 要件を満たすように構成されていません。この状況を修正するには、アプリトランスポートセキュリティ (ATS) を使用する」ドキュメントを参照してください。
-
アプリを実行する
アプリは、iPhone、iPad、またはiOSシミュレータでビルドして実行する準備ができました。Video Cloud ライブラリからビデオを再生できるはずです。
アプリは、iPhone、iPad、またはiOSシミュレータでビルドして実行する準備ができました。配列で定義されているビデオを再生できるはずです。