ステップバイステップ:Swiftを使った簡単なビデオアプリ

製品(複数可)
Video Cloud
Brightcove Player
役割
デバイスSDK開発者
タスク
ネイティブSDKを使用して開発する
トピック)
コードサンプル
API
Playback API
SDK
始めに
iOS

このトピックでは、簡単な動画再生アプリを作成する方法を学びます Brightcove Player iOS向けSDK Swiftプログラミング言語を使用して構築します。

概要

この例では、 Brightcove Playback APIこれは、最新の推奨APIであり、あなたの Video Cloud としょうかん。

このオプションには、ポリシーキーが必要です。 ポリシーキーに精通していない場合は、 Policy API 概要.

STARTED GET

この例では、ビデオファイルの内部配列からビデオを再生します。

下記の手順に従って、 Brightcove Player iOS向けSDK 次のそれぞれについて、完全なコードを表示することができます。

このサンプルを試すには2通りの方法があります:

サンプルをダウンロードする

実験のためにXcodeプロジェクト全体をダウンロードしてください。

  1. クローンを作成するかダウンロードする iOSサンプル用ネイティブSDK あなたのローカルシステムに転送します。
  2. に移動します Player / VideoCloudBasicPlayer / swift サンプルアプリ。
  3. 実行する pod install コマンド。
  4. 新しく作成したワークスペースを開き、実行します。

詳細については、 iOS / tvOS用ネイティブSDKのサンプルアプリケーションの実行 の資料をご参照ください。

このガイドの手順に従ってアプリを構築する

下記の手順に従って、 Brightcove Player tvOSのSDK。 次のそれぞれについて、完全なコードを表示することができます。

  1. AppDelegate
  2. ViewControllerを

プロジェクトを作成する

Xcodeでプロジェクトを設定します。 次に、プロジェクトに依存するものとともにSDKを追加します。

Xcodeプロジェクトを設定する

アプリケーション用の新しいXcodeプロジェクトを作成します。

  1. Xcodeで新しいiOSプロジェクトの作成を開始します。 選択 新しいXcodeプロジェクトを作成する.

    プロジェクトを作成する
    プロジェクトを作成する
  2. 選択する シングルビューアプリケーション テンプレートの選択と選択 .

    プロジェクトテンプレートを選択する
    プロジェクトテンプレートを選択する
  3. プロジェクト情報を次のように設定します。

    • 製品名: シンプルビデオ再生
    • チーム: なし

      チームフィールドはオプションです。 App Storeであなたのアプリを配布する場合は、Apple Developer Programを通じてあなたが所属するチームを選択する必要があります。 チーム名はコード署名に必要です。 この例では、noneを選択します。

    • 組織名: あなたの会社名
    • 組織識別子: com.example-company
      これにより、アプリストア固有の商品名になります。
    • 言語: スウィフト
    プロジェクト情報を追加する
    プロジェクト情報を追加する
  4. プロジェクトを保存する場所を選択して作成します。

    プロジェクトを保存する
    プロジェクトを保存する
  5. 今プロジェクトを閉じます(はい、閉じてください - これは重要です)。

SDKとその依存関係をプロジェクトに追加する

SDKとその依存関係をプロジェクトに追加する最も簡単な方法は、CocoaPodを使用することです。

CocoaPodsはプロジェクトにライブラリを追加する依存関係マネージャです。 これは必須ではありませんが、インストールが容易になります。 CocoaPodをインストールするには、 ココアポッド サイト。

  1. あなたのプロジェクトフォルダに、プレーンテキストファイルを作成します。 ポッドファイル (ファイル拡張子なし)。

  2. テキストエディタを使用して、次のコード行をPodfileに追加して保存します。 このコードは次の処理を行います。

    • Line 1:GitHubの位置を指します。 Brightcove ポッドの仕様。
    • Line 3:静的ライブラリの代わりにフレームワークを使用するようにポッドを設定します。
    • Line 5:iOSプラットフォームのバージョンを定義します。
    • 7-9行をインストールする Brightcove ネイティブプレーヤーSDK。

      1. 現在のネイティブSDKのバージョンを Brightcove iOS向けネイティブSDKの概要 の資料をご参照ください。
      2. 値を置き換える '6.3.11' 現在のSDKのバージョン番号で更新します。
      3. 依存関係の管理の詳細については、「 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
  3. ターミナルセッションを開き、あなたの シンプルビデオ再生 Xcodeプロジェクトフォルダ。

    ターミナルセッション
    ターミナルセッション
  4. ターミナルセッションで、コマンドを入力します

    pod install

    を押し リターン それを実行する。 端末に一連のメッセージが表示されるはずです。 Brightcove Player SDKがプロジェクトに追加されました。

  5. 最後の行に注目してください重要です - この時点から、あなたは シンプルビデオ再生xcworkspace Xcodeのファイル、 . インクルード シンプルなビデオ再生.xcodeproj ファイル。 ザ pod install コマンドはこれを作成する .xcworkspace あなたのプロジェクトのファイル。

ビデオアプリをコーディングする

シンプルなビデオ再生アプリのコードを作成します。

  1. Xcodeで、 シンプルビデオ再生xcworkspace ファイル。

アプリのオーディオ動作を設定する

オーディオセッションは、アプリケーションレベルでのオーディオ動作を処理します。 詳細はこちら AVAudioSession クラス。

このサンプルでは、 再生 カテゴリー。 これは、画面がロックされていてもリング/サイレントスイッチが無音に設定されていても音声を再生します。 私たちはビデオを再生しているので、 moviePlayback モード。 簡単にするために、このコードをApp Delegateに配置します。

  1. あなたのプロジェクトでは、App Delegateファイルを開きます(AppDelegate.swift).

  2. の中に didFinishLaunchingWithOptions 関数で、オーディオセッションカテゴリを設定するコードを追加します。 あなたが AVFoundation フレームワーク。

    • オーディオが期待どおりに再生されるようにするには、以下のコードが必要です。 たとえば、このコードを設定しないと、ミュートスイッチがオンになってもビデオは聞こえません。

    //
    //  AppDelegate.swift
    //  Simple-Video-Playback
    //
    //  Copyright © 2018 Brightcove. All rights reserved.
    //
    
    import UIKit
    import AVFoundation
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
      var window: UIWindow?
    
      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
      	// Override point for customization after application launch.
    
        var categoryError :NSError?
      	var success: Bool
      	do {
      		try AVAudioSession.sharedInstance().setCategory(.playback, mode: .moviePlayback, options: .duckOthers)
      		success = true
      	} catch let error as NSError {
      		categoryError = error
      		success = false
      	}
    
      	if !success {
      		print("AppDelegate Debug - Error setting AVAudioSession category.  Because of this, there may be no sound. \(categoryError!)")
      	}
    
      	return true
      }
    
      func applicationWillResignActive(_ application: UIApplication) {
      	// 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 invalidate graphics rendering callbacks. Games should use this method to pause the game.
      }
    
      func applicationDidEnterBackground(_ application: UIApplication) {
      	// 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.
      }
    
      func applicationWillEnterForeground(_ application: UIApplication) {
      	// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
      }
    
      func applicationDidBecomeActive(_ application: UIApplication) {
      	// 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.
      }
    
      func applicationWillTerminate(_ application: UIApplication) {
      	// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
      }
    
    }

View Controllerを構築する

View Controllerクラスを更新して、 Brightcove カタログサービス。

  1. プロジェクトで、View Controllerファイルを開きます(ViewController.swift).

ネイティブSDKをインポートする

しかし Brightcove iOS用のNative Player SDKはObjective-Cで書かれていますので、Swiftプロジェクトにフレームワークモジュールをインポートするだけです。

  1. 既存の下に import ディレクティブに次の行を追加して、 Brightcove ネイティブプレーヤーSDK:

    import BrightcovePlayerSDK

あなたの値でプロジェクトをカスタマイズする

アクセスするための値を追加する Video Cloud アカウント。

この例では、 Brightcove Playback APIこれは、最新の推奨APIであり、あなたの Video Cloud としょうかん。 ポリシーキーに精通していない場合は、 Policy API 概要.

  1. 以下 import ディレクティブを使用して、次の値を追加します。

    • ライン12:あなたの Brightcove Playback API ポリシーキー
    • ライン13:あなたの Video Cloud アカウントID
    • ライン14:あなたの Video Cloud 動画ID

    // ** Customize these values with your own account information **
    let kViewControllerPlaybackServicePolicyKey = "your policy key"
    let kViewControllerAccountID = "your account id"
    let kViewControllerVideoID = "your video id"

クラスデリゲートを設定する

これにより、あなたのアプリは、ビデオ再生イベントとプレーヤーコントロールイベントを聞いて応答することができます。

  1. View Controllerクラスを次のように更新します。

    class ViewController: UIViewController, BCOVPlaybackControllerDelegate {
    

定数を宣言してビューを設定する

  1. の中に ViewController クラスに次の行を追加します。

    • 行16:共有マネージャを初期化します。 ザ BCOVPlayerSDKManager クラスは、SDKエコシステム内に他のオブジェクトを作成できるシングルトンです。
    • Line 17:定数を定義します。 Brightcove アカウントIDとポリシーキーを使用して再生サービスを開始します。 ザ BCOVPlaybackService クラスは、非同期メソッドを提供します。 Playback API.
    • Line 18:再生コントローラの定数を定義します。 ザ BCOVPlaybackController 再生機能を制御するメソッドがあります。
    • Line 19:ビューの変数を定義します。

    class ViewController: UIViewController, BCOVPlaybackControllerDelegate {
      let sharedSDKManager = BCOVPlayerSDKManager.shared()
      let playbackService = BCOVPlaybackService(accountId: kViewControllerAccountID, policyKey: kViewControllerPlaybackServicePolicyKey)!
      let playbackController :BCOVPlaybackController
      @IBOutlet weak var videoContainer: UIView!

init関数を作成する

  1. 前の手順のコードの下に、 init() 次のように機能します。
    • Line 23:共有マネージャを使用して再生コントローラを作成します。
    • ライン27: 任意: あなたに送る Video Cloud アナリティクスへのアカウントID これは、 BCOVVideo クラスを使用しないでください。 Brightcove 再生サービスまたはカタログ。

    • 29-31行:デリゲートを設定し、自動進行機能と自動再生機能をオンにします。

     required init?(coder aDecoder: NSCoder) {
    	playbackController = (sharedSDKManager?.createPlaybackController())!
    
    	super.init(coder: aDecoder)
    
    	playbackController.analytics.account = kViewControllerAccountID // Optional
    
    	playbackController.delegate = self
    	playbackController.isAutoAdvance = true
    	playbackController.isAutoPlay = true
    }

プレーヤーを設定する

  1. の中に viewDidLoad() 次のように追加します。

    • ライン39: Brightcove 標準のVODレイアウトを使用して、プレーヤーのコントロールを制御します。
    • ライン44:プレーヤービューをメインビューのサブビューとして追加します。
    • ライン45:オフにする 自動サイズ変更マスク.
    • 46-51行:使用 自動レイアウト プレーヤービューの動的制約を定義します。
    • Line 54:プレイヤービューを再生コントローラーに関連付けます。
    • ライン56: requestContentFromPlaybackService 次のステップで定義します。

    override func 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.
      guard let playerView = BCOVPUIPlayerView(playbackController: self.playbackController, options: nil, controlsView: BCOVPUIBasicControlView.withVODLayout()) else {
          return
      }
    
      // Install in the container view and match its size.
      self.videoContainerView.addSubview(playerView)
      playerView.translatesAutoresizingMaskIntoConstraints = false
      NSLayoutConstraint.activate([
          playerView.topAnchor.constraint(equalTo: self.videoContainerView.topAnchor),
          playerView.rightAnchor.constraint(equalTo: self.videoContainerView.rightAnchor),
          playerView.leftAnchor.constraint(equalTo: self.videoContainerView.leftAnchor),
          playerView.bottomAnchor.constraint(equalTo: self.videoContainerView.bottomAnchor)
      ])
    
      // Associate the playerView with the playback controller.
      playerView.playbackController = playbackController
    
      requestContentFromPlaybackService()
    }

コンテンツを Brightcove ライブラリ

ビデオコンテンツを再生するには、カタログサービスからプレイリストを要求します

  1. 以下 viewDidLoad() 関数を作成するには、 requestContentFromPlaybackService() 次のように:

    • ライン60:ビデオオブジェクトを Playback API 指定された動画IDに基づいて
    • Line 63:ビデオを再生コントローラーに追加します。
    • Line 65:プレイリストが返されない場合にエラーメッセージを書き込みます。

    func requestContentFromPlaybackService() {
      playbackService?.findVideo(withVideoID: kViewControllerVideoID, parameters: nil) { (video: BCOVVideo?, jsonResponse: [AnyHashable: Any]?, error: Error?) -> Void in
    
        if let v = video {
            self.playbackController.setVideos([v] as NSArray)
        } else {
            print("ViewController Debug - Error retrieving video: \(error?.localizedDescription ?? "unknown error")")
        }
      }
    }

コードを見る

View Controllerが完了しました。 ここに完全なコードです:

//
//  ViewController.swift
//  VideoCloudBasicPlayer
//
//  Copyright © 2018 Brightcove, Inc. All rights reserved.
//

import UIKit
import BrightcovePlayerSDK

let kViewControllerPlaybackServicePolicyKey = "your policy key"
let kViewControllerAccountID = "your account id"
let kViewControllerVideoID = "your video id"

class ViewController: UIViewController, BCOVPlaybackControllerDelegate {

  let sharedSDKManager = BCOVPlayerSDKManager.shared()
  let playbackService = BCOVPlaybackService(accountId: kViewControllerAccountID, policyKey: kViewControllerPlaybackServicePolicyKey)
  let playbackController :BCOVPlaybackController
  @IBOutlet weak var videoContainerView: UIView!

  required init?(coder aDecoder: NSCoder) {
    playbackController = (sharedSDKManager?.createPlaybackController())!

    super.init(coder: aDecoder)

    playbackController.analytics.account = kViewControllerAccountID // Optional

    playbackController.delegate = self
    playbackController.isAutoAdvance = true
    playbackController.isAutoPlay = true
  }

  override func 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.
    guard let playerView = BCOVPUIPlayerView(playbackController: self.playbackController, options: nil, controlsView: BCOVPUIBasicControlView.withVODLayout()) else {
        return
    }

    // Install in the container view and match its size.
    self.videoContainerView.addSubview(playerView)
    playerView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
      playerView.topAnchor.constraint(equalTo: self.videoContainerView.topAnchor),
      playerView.rightAnchor.constraint(equalTo: self.videoContainerView.rightAnchor),
      playerView.leftAnchor.constraint(equalTo: self.videoContainerView.leftAnchor),
      playerView.bottomAnchor.constraint(equalTo: self.videoContainerView.bottomAnchor)
    ])

    // Associate the playerView with the playback controller.
    playerView.playbackController = playbackController

    requestContentFromPlaybackService()
  }

  func requestContentFromPlaybackService() {
    playbackService?.findVideo(withVideoID: kViewControllerVideoID, parameters: nil) { (video: BCOVVideo?, jsonResponse: [AnyHashable: Any]?, error: Error?) -> Void in

      if let v = video {
        self.playbackController.setVideos([v] as NSArray)
      } else {
        print("ViewController Debug - Error retrieving video: \(error?.localizedDescription ?? "unknown error")")
      }
    }
  }
}

ネイティブSDKをインポートする

しかし Brightcove iOS用のNative Player SDKはObj-Cで書かれていますので、Swiftプロジェクトにフレームワークモジュールをインポートするだけです。

  1. 既存の下に import ディレクティブに次の行を追加して、 Brightcove ネイティブプレーヤーSDK:

    import BrightcovePlayerSDK

あなたの値でプロジェクトをカスタマイズする

あなたのアカウントIDの値を設定します。 Brightcove 後のステップで。

  1. 以下 #import ディレクティブ、あなた自身の価値をあなたの Brightcove アカウントID。 これはあなたのアプリを登録するために使用されます Brightcove.

    let kViewControllerAccountID = "your account id" // For Brightcove registration

クラスの代理人を設定する

これにより、あなたのアプリは、ビデオ再生イベントとプレーヤーコントロールイベントを聞いて応答することができます。

  1. View Controllerクラスを次のように更新します。

    class ViewController: UIViewController, BCOVPlaybackControllerDelegate {

定数を宣言してビューを設定する

  1. の中に ViewController クラスに次の行を追加します。

    • 行14:共有マネージャを初期化します。 ザ BCOVPlayerSDKManager クラスは、SDKエコシステム内に他のオブジェクトを作成できるシングルトンです。
    • Line 15:再生コントローラの定数を定義します。 ザ BCOVPlaybackController 再生機能を制御するメソッドがあります。
    • Line 16:ビューの変数を定義します。

    class ViewController: UIViewController, BCOVPlaybackControllerDelegate {
      let sharedSDKManager = BCOVPlayerSDKManager.shared()
      let playbackController :BCOVPlaybackController
      @IBOutlet weak var videoContainerView: UIView!

init関数を作成する

  1. 前の手順のコードの下に、 init() 次のように機能します。
    • Line 20:共有マネージャを使用して再生コントローラを作成します。
    • ライン25:あなたの Video Cloud サイト運営者ID: Brightcove アナリティクスを使用してアプリを登録します。

    • 28-30:デリゲートを設定し、自動進行および自動再生機能をオンにします。

    required init?(coder aDecoder: NSCoder) {
      // Create the Brightcove playback controller
      playbackController = (sharedSDKManager?.createPlaybackController())!
    
      super.init(coder: aDecoder)
    
      // Register your app with Brightcove
      playbackController.analytics.account = kViewControllerAccountID
    
      // Configure the player
      playbackController.delegate = self
      playbackController.isAutoAdvance = true
      playbackController.isAutoPlay = true
    }

プレーヤーを設定する

  1. の中に viewDidLoad() 次のように追加します。

    • 38-40:urlパスを使ってビデオソースの配列を作成します。
    • 43-45:再生コントローラーの表示を設定します。
    • ライン48:プレーヤービューをメインビューのサブビューとして追加します。
    • ライン49:オフにする 自動サイズ変更マスク.
    • 50-55行:使用 自動レイアウト プレーヤービューの動的制約を定義します。
    • Line 58:プレイヤービューを再生コントローラーに関連付けます。
    • Line 61:ビデオアレイをコントローラーの再生キューに追加します。
    • Line 62:最初のビデオの再生を開始します。

    override func viewDidLoad() {
      super.viewDidLoad()
      // Do any additional setup after loading the view, typically from a nib.
    
      // Create an array of videos
      var videoArray = [AnyObject]()
      videoArray = [videoWithURL(url: NSURL(string: "https://solutions.brightcove.com/bcls/assets/videos/Great_Horned_Owl.mp4")!),
                    videoWithURL(url: NSURL(string: "https://solutions.brightcove.com/bcls/assets/videos/Great_Blue_Heron.mp4")!)]
    
      // Set up the player view with a standard VOD layout.
      guard let playerView = BCOVPUIPlayerView(playbackController: self.playbackController, options: nil, controlsView: BCOVPUIBasicControlView.withVODLayout()) else {
          return
      }
    
      // Install the container view and match its size.
      self.videoContainerView.addSubview(playerView)
      playerView.translatesAutoresizingMaskIntoConstraints = false
      NSLayoutConstraint.activate([
          playerView.topAnchor.constraint(equalTo: self.videoContainerView.topAnchor),
          playerView.rightAnchor.constraint(equalTo: self.videoContainerView.rightAnchor),
          playerView.leftAnchor.constraint(equalTo: self.videoContainerView.leftAnchor),
          playerView.bottomAnchor.constraint(equalTo: self.videoContainerView.bottomAnchor)
      ])
    
      // Associate the playerView with the playback controller.
      playerView.playbackController = playbackController
    
      // Load the video array into the player and start video playback
      playbackController.setVideos(videoArray as NSArray)
      playbackController.play();
    }

ビデオソースの配信方法を設定する

  1. 以下 viewDidLoad() 関数を作成するには、 BCOVSources 動画に属する

    func videoWithURL(url: NSURL) -> BCOVVideo {
        // Set the delivery method for BCOVSources that belong to a video
        let source:BCOVSource = BCOVSource(url: url as URL, deliveryMethod: kBCOVSourceDeliveryHLS, properties: nil)
        let video = BCOVVideo.init(source: source, cuePoints: BCOVCuePointCollection.init(array: []), properties: [NSObject:AnyObject]())
        return video!
    }

コードを見る

View Controllerが完了しました。 ここに完全なコードです:

//
//  ViewController.swift
//  Simple-Video-Playback for Brightcove Player Customers
//
//  Copyright © 2018 Brightcove. All rights reserved.
//

import UIKit
import BrightcovePlayerSDK

let kViewControllerAccountID = "your account id" // For Brightcove registration

class ViewController: UIViewController, BCOVPlaybackControllerDelegate {
    let sharedSDKManager = BCOVPlayerSDKManager.shared()
    let playbackController :BCOVPlaybackController
    @IBOutlet weak var videoContainerView: UIView!

    required init?(coder aDecoder: NSCoder) {
        // Create the Brightcove playback controller
        playbackController = (sharedSDKManager?.createPlaybackController())!

        super.init(coder: aDecoder)

        // Register your app with Brightcove
        playbackController.analytics.account = kViewControllerAccountID

        // Configure the player
        playbackController.delegate = self
        playbackController.isAutoAdvance = true
        playbackController.isAutoPlay = true
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        // Create an array of videos
        var videoArray = [AnyObject]()
        videoArray = [videoWithURL(url: NSURL(string: "https://solutions.brightcove.com/bcls/assets/videos/Great_Horned_Owl.mp4")!),
                      videoWithURL(url: NSURL(string: "https://solutions.brightcove.com/bcls/assets/videos/Great_Blue_Heron.mp4")!)]

        // Set up the player view with a standard VOD layout.
        guard let playerView = BCOVPUIPlayerView(playbackController: self.playbackController, options: nil, controlsView: BCOVPUIBasicControlView.withVODLayout()) else {
            return
        }

        // Install in the container view and match its size.
        self.videoContainerView.addSubview(playerView)
        playerView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            playerView.topAnchor.constraint(equalTo: self.videoContainerView.topAnchor),
            playerView.rightAnchor.constraint(equalTo: self.videoContainerView.rightAnchor),
            playerView.leftAnchor.constraint(equalTo: self.videoContainerView.leftAnchor),
            playerView.bottomAnchor.constraint(equalTo: self.videoContainerView.bottomAnchor)
        ])

        // Associate the playerView with the playback controller.
        playerView.playbackController = playbackController

        // Load the video array into the player and start video playback
        playbackController.setVideos(videoArray as NSArray)
        playbackController.play();
    }

    func videoWithURL(url: NSURL) -> BCOVVideo {
      // Set the delivery method for BCOVSources that belong to a video
      let source:BCOVSource = BCOVSource(url: url as URL, deliveryMethod: kBCOVSourceDeliveryHLS, properties: nil)
      let video = BCOVVideo.init(source: source, cuePoints: BCOVCuePointCollection.init(array: []), properties: [NSObject:AnyObject]())
      return video!
    }
}

ストーリーボードビューを接続する

接続します Main.storyboard と一緒に見る videoContainer プロパティ。

  1. Xcodeでは、 Main.storyboard ファイル。

  2. コンパニオンビューで、 コントローラのシーンを表示する そして、 コントローラの表示 メニューを表示する 詳細 オブジェクトの情報を使用したりすることができます。

    ストーリーボードビュー
    ストーリーボードビュー
  3. アシスタントエディタを表示して、 ViewController.swift ファイル。

    アシスタントエディタ
    アシスタントエディタ
  4. 横にある白抜きの円を選択してください @IBOutlet のために videoContainerView、それを 詳細 これらのコンポーネントを接続するオブジェクト。

    ビューを接続する
    ビューを接続する

メディアセキュリティを管理する

App Transport Security(ATS)は、アプリとWebサービス間の安全な接続を強制します。 アップルのiOS 9 SDKのリリースでは、 アプリケーション転送セキュリティ(ATS) を添加した。

  1. アプリには次のいずれかの状況が適用されます:

    • デフォルトでは、 Brightcove iOS用のネイティブ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 Simulatorでビルドおよび実行する準備が整いました。 あなたはあなたのプレイリストからビデオを再生できるはずです。

iPhoneのサンプル
iPhoneのサンプル

このアプリは、iPhone、iPad、またはiOS Simulatorでビルドおよび実行する準備が整いました。 あなたの配列で定義されたビデオを再生することができるはずです。

iPhoneのサンプル
iPhoneのサンプル