Überblick
In diesem Beispiel wird ein Video abgespielt, das von zurückgegeben wird Brightcove-Wiedergabe-API , die neueste und empfohlene API zum Abrufen von Inhalten aus Ihrer Brightcove-Bibliothek.
Für diese Option benötigen Sie einen Richtlinienschlüssel. Wenn Sie mit Richtlinienschlüsseln nicht vertraut sind, lesen Sie Übersicht über die Richtlinien-API.
Los geht's
In diesem Beispiel werden Videos aus einem internen Array von Videodateien abgespielt.
Gehen Sie wie folgt vor, um sich mit der Einrichtung eines App-Projekts vertraut zu machen, das das Brightcove Player SDK für iOS verwendet. Sie können den vollständigen Code für jede der folgenden Optionen anzeigen:
Es gibt zwei Möglichkeiten, dieses Beispiel auszuprobieren:
Laden Sie das Beispiel herunter
Laden Sie das gesamte Xcode-Projekt zum Experimentieren herunter.
- Klonen Sie die Native SDK-Beispiele für iOS oder laden Sie sie auf Ihr lokales System herunter.
- Navigieren Sie zum Player/VideoCloudBasicPlayer/objc Beispiel-App.
- Führen Sie die
pod install
Befehl. - Öffnen Sie den neu erstellten Arbeitsbereich und führen Sie ihn aus.
Einzelheiten finden Sie im Ausführen von Beispiel-Apps für das native SDK für iOS/tvOS dokumentieren.
Erstellen Sie die App, indem Sie die Schritte in dieser Anleitung befolgen
Gehen Sie wie folgt vor, um sich mit der Einrichtung eines App-Projekts vertraut zu machen, das das Brightcove Player SDK für tvOS verwendet. Sie können den vollständigen Code für jede der folgenden Optionen anzeigen:
Erstellen Sie das Projekt
Richten Sie ein Projekt in Xcode ein. Fügen Sie dann das Brightcove Player SDK zusammen mit allen Abhängigkeiten zum Projekt hinzu.
Das Xcode-Projekt einrichten
Erstellen Sie ein neues Xcode-Projekt für die App.
-
Starten Sie die Erstellung eines neuen iOS-Projekts in Xcode. Auswählen Erstellen Sie ein neues Xcode-Projekt. Alternativ können Sie im Xcode-Hauptmenü Datei, Neu, Projekt auswählen.
Projekt erstellen -
Wählen Sie App für die Vorlage und klicken Sie auf Weiter.
Projektvorlage auswählen -
Legen Sie die Projektinformationen wie folgt fest:
- Produktname: Einfache-Video-Wiedergabe
- Mannschaft: keiner
Das Feld Team ist optional. Wenn Sie Ihre App im App Store vertreiben möchten, müssen Sie über das Apple Developer Program ein Team auswählen, dem Sie angehören. Der Teamname ist für die Codesignatur erforderlich. In diesem Beispiel wählen wir keine aus.
- Organisationskennung: com.example-company
Dadurch wird der Produktname für den App Store eindeutig. - Schnittstelle: Storyboard
- Sprache: Ziel c
Klicken Sie auf Weiter.
Projektinformationen hinzufügen -
Wählen Sie den Ort, an dem Sie Ihr Projekt speichern möchten, und klicken Sie auf Erstellen.
Projekt speichern - Schließen Sie nun das Projekt (ja, schließen Sie es – das ist wichtig!)
Fügen Sie das SDK und seine Abhängigkeiten zu Ihrem Projekt hinzu
Der einfachste Weg, das SDK und seine Abhängigkeiten zu Ihrem Projekt hinzuzufügen, ist die Verwendung von CocoaPods.
CocoaPods ist ein Abhängigkeitsmanager, der Ihrem Projekt Bibliotheken hinzufügt. Es ist nicht erforderlich, erleichtert aber die Installation. Um CocoaPods zu installieren, lesen Sie die Anweisungen auf der Kakaoschoten Seite? ˅.
-
Erstellen Sie in Ihrem Projektordner eine Nur-Text-Datei namens Pod-Datei (keine Dateierweiterung).
-
Fügen Sie mit einem Texteditor die folgenden Codezeilen zum Podfile hinzu und speichern Sie es. Dieser Code bewirkt folgendes:
- Zeile 1: Verweist auf den GitHub-Speicherort für die Spezifikationen des CocoaPods-Pods
- Zeile 2: Zeigt auf den GitHub-Speicherort für die Brightcove-Pod-Spezifikationen
- Zeile 4: Definiert die iOS-Plattformversion
- Zeile 6: Legt fest, dass Pods Frameworks statt statischer Bibliotheken verwenden
-
Zeilen 8-10: Installieren Sie das Brightcove Native Player-SDK
- Weitere Informationen zum Verwalten von Abhängigkeiten finden Sie im So verwalten Sie Abhängigkeiten mit CocoaPods Artikel.
source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/brightcove/BrightcoveSpecs.git' platform :ios, '16.0' use_frameworks! target 'Simple-Video-Playback' do pod 'Brightcove-Player-Core/XCFramework' end
-
Öffnen Sie eine Terminal-Sitzung und navigieren Sie zu Ihrem Einfache-Video-Wiedergabe Xcode-Projektordner.
Terminalsitzung -
Geben Sie in der Terminalsitzung den folgenden Befehl ein:
pod install
und drücke Zurückkehren es laufen zu lassen. Im Terminal sollte eine Reihe von Meldungen angezeigt werden, die darauf hinweisen, dass das Brightcove Player SDK zu Ihrem Projekt hinzugefügt wurde.
-
Der
pod install
Befehl erstellt die.xcworkspace
Datei für Ihr Projekt.Beachten Sie die letzte Zeile, die wichtig ist - von nun an müssen Sie Folgendes tun:
- Öffnen Sie die Datei Simple-Video-Playback.xcworkspace in Xcode
- Tun nicht benutze die Simple-Video-Playback.xcodeproj Datei
Codieren Sie die Video-App
Erstellen Sie den Code für eine einfache Videowiedergabe-App.
- Öffnen Sie in Xcode das Simple-Video-Playback.xcworkspace Datei.
Legen Sie das Audioverhalten für die App fest
Die Audiositzung behandelt das Audioverhalten auf App-Ebene. Erfahren Sie mehr über die AVAudioSession Klasse.
Für dieses Beispiel verwenden wir AVAudioSessionCategoryPlayback
. Dies spielt auch dann Audio ab, wenn der Bildschirm gesperrt ist und der Schalter Klingeln/Stumm auf lautlos eingestellt ist. Der Einfachheit halber legen wir den Code dafür in den App Delegate.
-
Öffnen Sie in Ihrem Projekt die App Delegate-Implementierungsdatei (AppDelegate.m).
-
In dem
didFinishLaunchingWithOptions
-Methode, fügen Sie Code hinzu, um die Kategorie der Audiositzung festzulegen. Stellen Sie sicher, dass Sie die importierenAVFoundation
Rahmen.- Wir benötigen den folgenden Code, um sicherzustellen, dass Audio wie erwartet wiedergegeben wird. Ohne diesen Code beispielsweise hören wir das Video nicht, wenn der Stummschalter eingeschaltet ist.
- Der Einfachheit halber fügen wir dies im Beispiel in den App-Delegaten ein. Weitere Informationen zur Verwendung in Ihrer eigenen App finden Sie im Programmieranleitung für Audiositzungen.
// // AppDelegate.m // Simple-Video-Playback // #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; } #pragma mark - UISceneSession lifecycle - (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options { // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; } - (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions { // Called when the user discards a scene session. // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. // Use this method to release any resources that were specific to the discarded scenes, as they will not return. } @end
Erstellen Sie die View Controller-Implementierung
Aktualisieren Sie die View Controller-Implementierung, um ein Video aus dem Brightcove-Katalogdienst abzuspielen.
-
Öffnen Sie in Ihrem Projekt die View Controller-Implementierungsdatei (ViewController.m).
Importieren der Brightcove Player SDK-Headerdatei
-
Fügen Sie die folgende Importanweisung für das Brightcove Player SDK hinzu:
@import BrightcovePlayerSDK;
Passen Sie das Projekt mit Ihren Werten an
Fügen Sie Token- und Playlist-ID-Werte hinzu, um auf Ihr Video Cloud-Konto zuzugreifen.
In diesem Beispiel wird ein Video abgespielt, das von zurückgegeben wird Brightcove-Wiedergabe-API , die neueste und empfohlene API zum Abrufen von Inhalten aus Ihrer Brightcove-Bibliothek. Wenn Sie mit Richtlinienschlüsseln nicht vertraut sind, lesen Sie die Übersicht über die Richtlinien-API.
-
Unter dem
#import
-Anweisungen, fügen Sie Ihre eigenen Werte für Folgendes hinzu:- Zeile 11: Definiert Ihren Brightcove Playback API-Richtlinienschlüssel.
- Zeile 12: Definiert Ihre Video Cloud-Konto-ID.
- Zeile 13: Definiert Ihre Video Cloud-Video-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";
Eigenschaften deklarieren
-
Fügen Sie im Abschnitt ViewController-Schnittstelle die folgenden Klassendeklarationen hinzu:
- Zeile 14: Fügt die Brightcove-Delegaten zum
interface
. Auf diese Weise kann Ihre App Videowiedergabeereignisse anhören und darauf reagieren. - Zeile 16: Definiert die
BCOVPlaybackService
-Klasse, die asynchrone Methoden zum Abrufen von Daten aus der Playback-API bereitstellt. - Zeile 17: Definiert die
BCOVPlaybackController
, die über Methoden zur Steuerung der Wiedergabefunktion verfügt. - Zeile 18: Definiert die Playeransicht für die Brightcove-UI-Steuerelemente.
- Zeile 19: Definiert die Videocontaineransicht.
@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
- Zeile 14: Fügt die Brightcove-Delegaten zum
Initialisierungsmethode definieren
-
Definieren Sie im ViewController-Implementierungsabschnitt eine
init
Funktion, die einesetup
Funktion aufruft, die Sie im nächsten Schritt definieren werden.@implementation ViewController #pragma mark Setup Methods - (instancetype)initWithCoder:(NSCoder *)coder { self = [super initWithCoder:coder]; if (self) { [self setup]; } return self; }
Richten Sie den Player ein
-
Erstellen Sie unter der
init
Funktion eine Funktion namenssetup
, die aufgerufen wird, wenn die App geladen wird.- Zeile 38: Verwendet den Shared Manager, um einen Playback-Controller zu erstellen. Die
BCOVPlayerSDKManager
class ist ein Singleton, mit dem Sie andere Objekte im SDK-Ökosystem erstellen können. -
Zeile 40: Fakultativ: Wenn Sie das überschreiben
BCOVVideo
Klasse verwenden oder den Brightcove-Player und -Wiedergabedienst oder -Katalog nicht verwenden, müssen Sie Ihre Video Cloud-Konto-ID an Video Cloud Analytics senden. Auf diese Weise können Sie Daten für diese App in Video Cloud Analytics anzeigen. - Zeilen 42-44: Legen Sie den Delegierten fest und schalten Sie die Funktionen Autoadvance und Autoplay ein.
-
Zeile 46: Initialisiert den Wiedergabedienst mit Ihrer Konto-ID und Ihrem Richtlinienschlüssel.
- (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]; }
- Zeile 38: Verwendet den Shared Manager, um einen Playback-Controller zu erstellen. Die
Konfigurieren Sie den Player
-
In dem
viewDidLoad
Funktion gehen Sie wie folgt vor:- Zeile 54: Erstellen und legen Sie die Brightcove-Player-Steuerelemente mit dem Standard-VOD-Layout fest.
- Zeile 56: Fügt die Player-Ansicht als Unteransicht der Hauptansicht hinzu.
- Zeile 57: Schalte aus Maske mit automatischer Größenanpassung.
- Zeilen 58-63: Verwenden Automatisches Layout um dynamische Beschränkungen für die Spieleransicht zu definieren.
- Zeilen 64: Weist die Player-Ansicht der zugehörigen globalen Variablen zu.
- Zeilen 67: Verknüpft die Player-Ansicht mit dem Wiedergabe-Controller.
-
Zeile 69: Ruft die
requestContentFromPlaybackService
Funktion, die Sie im nächsten Schritt definieren.
- (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]; }
Anfordern von Inhalten aus der Brightcove-Bibliothek
Um Videoinhalte wiederzugeben, fordern Sie ein Video aus Ihrer Video Cloud-Bibliothek an.
-
Unter dem
viewDidLoad
Funktion, erstellen Sie eine Funktion namensrequestContentFromPlaybackService
wie folgt:- (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); } }]; }
Code ansehen
Die View Controller-Implementierung ist nun abgeschlossen. Hier ist der vollständige Code:
//
// ViewController.m
// Simple-Video-Playback
//
#import "ViewController.h"
@import BrightcovePlayerSDK;
// ** 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
Passen Sie das Projekt mit Ihren Werten an
Legen Sie den Wert Ihrer Konto-ID fest, die in einem späteren Schritt an Brightcove gesendet wird.
-
Unter dem
#import
-Anweisungen, fügen Sie Ihren eigenen Wert für Ihre Brightcove-Konto-ID hinzu. Dies wird verwendet, um Ihre App bei Brightcove zu registrieren.// ** Customize these values with your own account information ** static NSString * const kViewControllerAccountID = @"your account id";
Eigenschaften deklarieren
-
Fügen Sie im Abschnitt ViewController-Schnittstelle die folgenden Delegaten und Klassendeklarationen hinzu:
- Zeile 14: Fügt die Brightcove-Delegaten zum
interface
. - Zeile 16: Definiert die
BCOVPlaybackController
, die über Methoden zur Steuerung der Wiedergabefunktion verfügt. - Zeile 17: Definiert die Playeransicht für die Brightcove-UI-Steuerelemente.
-
Zeile 18: Definiert die Videocontaineransicht.
@interface ViewController () <BCOVPlaybackControllerDelegate> @property (nonatomic, strong) id<BCOVPlaybackController> playbackController; @property (nonatomic) BCOVPUIPlayerView *playerView; @property (nonatomic, weak) IBOutlet UIView *videoContainer; @end
- Zeile 14: Fügt die Brightcove-Delegaten zum
Initialisierungsmethoden definieren
-
Definieren Sie im ViewController-Implementierungsabschnitt eine
init
Funktion, die einesetup
Funktion aufruft, die Sie im nächsten Schritt definieren werden.@implementation ViewController #pragma mark Setup Methods - (instancetype)initWithCoder:(NSCoder *)coder { self = [super initWithCoder:coder]; if (self) { [self setup]; } return self; }
Richten Sie den Player ein
- Erstellen Sie unter der
init
Funktion eine Methode namenssetup
, die aufgerufen wird, wenn die App geladen wird.- Zeile 37: Erstellt den Wiedergabe-Controller mithilfe eines freigegebenen Managers. Die
BCOVPlayerSDKManager
class ist ein Singleton, mit dem Sie andere Objekte im SDK-Ökosystem erstellen können. - Zeile 39: Registriert Ihre App bei Brightcove, indem Sie Ihre Konto-ID senden.
-
Zeilen 41-43: Stellen Sie den Delegierten ein und aktivieren Sie die Funktionen Autoadvance und Autoplay.
- (void)setup { _playbackController = [BCOVPlayerSDKManager.sharedManager createPlaybackController]; _playbackController.analytics.account = kViewControllerAccountID; _playbackController.delegate = self; _playbackController.autoAdvance = YES; _playbackController.autoPlay = YES; }
- Zeile 37: Erstellt den Wiedergabe-Controller mithilfe eines freigegebenen Managers. Die
Konfigurieren Sie den Player und starten Sie die Wiedergabe
-
In dem
viewDidLoad
Methode gehen Sie wie folgt vor:- Zeilen 50-53: Erstellen Sie ein Array von Videoquellen. Du definierst die
videoWithURL
Funktion im nächsten Schritt. - Zeile 56: Erstellen Sie die Player-Ansicht mit einem Standard-VOD-Layout.
- Zeile 58: Fügt die Player-Ansicht als Unteransicht der Hauptansicht hinzu.
- Zeile 59: Schalte aus Maske mit automatischer Größenanpassung.
- Zeilen 60-65: Verwenden Automatisches Layout um dynamische Beschränkungen für die Spieleransicht zu definieren.
- Zeile 66: Verknüpft die Player-Ansicht mit dem Wiedergabe-Controller.
- Zeile 69: Fügt das Video-Array zur Wiedergabewarteschlange des Controllers hinzu.
-
Zeile 74: Startet die Wiedergabe des ersten Videos.
- (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]; }
- Zeilen 50-53: Erstellen Sie ein Array von Videoquellen. Du definierst die
Der Rest
-
Erstellen Sie unter der
viewDidLoad
Funktion eine Funktion, die die Übertragungsmethode fürBCOVSources
die zu einem Video gehörenden Inhalte festlegt.- (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:@{}]; }
Code ansehen
Die View Controller-Implementierung ist nun abgeschlossen. Hier ist der vollständige Code:
//
// ViewController.m
// Simple-Video-Playback
//
// Copyright © 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
Verbinden Sie die Storyboard-Ansicht
Verbinden Sie die Main.storyboard
mit dem sehenvideoContainer
Eigentum.
-
Öffnen Sie im Xcode die
Main.storyboard
Datei. -
Erweitern Sie in der Companion-Ansicht das Controller-Szene anzeigen und dann die Controller anzeigen Menü, um die Sicht Objekt.
Storyboard-Ansicht" -
Klicken Editor rechts hinzufügen , und öffnen Sie die
ViewController.m
Datei.Editor hinzufügen -
Wählen Sie den offenen Kreis neben dem
@property
Feld ausvideoContainer
, und ziehen Sie ihn auf das View-Objekt, um diese Komponenten zu verbinden.Verbinde die Aussicht
Mediensicherheit verwalten
App Transport Security (ATS) erzwingt sichere Verbindungen zwischen Ihrer App und Webdiensten. Mit der Veröffentlichung des iOS 9 SDK durch Apple wurde eine neue Funktion namens App-Transportsicherheit (ATS) wurde hinzugefügt.
-
Eine der folgenden Situationen trifft auf Ihre App zu:
-
Standardmäßig verwendet das Brightcove Native SDK für iOS eine Quellenauswahlrichtlinie, um HTTPS gegenüber HTTP-Quellen auszuwählen, sodass Sie Ihre Apps mit aktiviertem ATS erstellen können.
Das war's, Sie sind bereit, Ihre App auszuführen.
-
Wenn Ihre Remote-Assets HTTPS anstelle von HTTP-Quellen verwenden, können Sie Ihre Apps mit aktiviertem ATS erstellen.
Das war's, Sie sind bereit, Ihre App auszuführen.
-
Wenn Sie HTTP-Quellen verwenden oder andere HTTP-Aufrufe in Ihrer App haben, wird möglicherweise die folgende Fehlermeldung angezeigt:
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.
Dies bedeutet, dass ATS aktiviert ist, Ihr System jedoch nicht so konfiguriert ist, dass es die ATS-Anforderungen erfüllt. Um diese Situation zu beheben, lesen Sie die Arbeiten mit App Transport Security (ATS) dokumentieren.
-
Führen Sie die App aus
Die App kann auf einem iPhone, iPad oder dem iOS-Simulator erstellt und ausgeführt werden. Sie sollten das Video aus Ihrer Video Cloud-Bibliothek abspielen können.

Weitere Einzelheiten finden Sie in den Brightcove-Player-SDK für iOS-Beispiele.
Die App kann auf einem iPhone, iPad oder dem iOS-Simulator erstellt und ausgeführt werden. Sie sollten in der Lage sein, die in Ihrem Array definierten Videos abzuspielen.

Weitere Einzelheiten finden Sie in den Brightcove-Player-SDK für iOS-Beispiele.