Erste Schritte mit dem Video Cloud-App-SDK für iOS

Product
Video Cloud
Betrifft die Rollen
Entwickler
Version
Brightcove 5
Edition
Express 499, Pro, Enterprise

Dieses Dokument beschreibt das Video Cloud-App-SDK für iOS, mit der Sie Ihre eigene native Anwendung entwickeln können, um Ihre Video Cloud-Videos auf iPhone, iPad und anderen Apple iOS-Plattformen bereitzustellen. Lesen Sie neben dem Artikel „Erste Schritte“ auch folgende weiteren Dokumente:

Das Video Cloud-App-SDK für iOS ist ein Satz Cocoa/Objective-C-Bibliotheken für den Einsatz der Video Cloud-Medien-API und für die Wiedergabe von Videos in einem benutzerdefinierten Video Cloud-Videoplayer auf Apple iOS-Geräten wie dem iPhone, iPad und iPod Touch. Die Medien-API weist eine Cocoa/Objective-C-Schnittstelle für die Video Cloud-Video und Wiedergabelisten-API auf. Die Playerkomponente bietet auf dem standardmäßigen iOS-Videoplayer Support für E-Mail und Twitter-Freigabe sowie ähnliche und beliebte Video-Overlays.

Die Erweiterung des App-Stores iTunes sowie die Beliebtheit von iPhone und iPad trägt dazu bei, dass die Nachfrage nach mobilen Medien weiter steigt. Die Erstellung von nativen iOS-Anwendungen mithilfe dieses SDKs gewährleistet eine hohe Benutzerfreundlichkeit. Sie können über das SDK einfach auf Ihren Videocontent und Ihre Metadaten zugreifen und Videocontent und Metadaten abrufen, sodass Sie Ihre App auf mobile Besucher ausrichten können und die Präsenz Ihrer Marke bei der Zielgruppe jederzeit bestehen bleibt.

Falls Sie die Entwicklung einer iOS-Anwendung in Erwägung ziehen, ist es niemals zu früh, mit der Vorbereitung Ihres Videocontents für die mobile Bereitstellung zu beginnen. Weitere Informationen finden Sie unter Verschlüsseln von Videos für die mobile Bereitstellung. Sie können auch die Entwicklung einer Webanwendung für Mobilgeräte in Erwägung ziehen. Möglichkeiten mit Brightcove.

Für das Video Cloud-App-SDK für iOS ist Apple iOS-SDK Version 3.1 oder höher erforderlich.

OnePlanet-Beispielanwendung

Wir haben mit Version 2.1 der Video Cloud-App-SDK für iOS eine Beispiel-App eigens für iPhone und iPad namens OnePlanet entwickelt. Erfahren Sie, wie wir OnePlanet entwickelt haben, und laden Sie sich den Quellcode für die iPhone- and iPad-Versionen der App herunter.

OnePlanet-Demovideo

Sie finden diese kostenlose App für iPhone oder iPad im App-Store iTunes.

Installieren des Video Cloud-App-SDK für iOS in Xcode

So installieren Sie die Video Cloud-App-SDK für iOS:

  1. Öffnen Sie Xcode, und erstellen oder öffnen Sie ein Xcode-Projekt.
  2. Wählen Sie die Ausrichtung des Projekts aus, und klicken Sie auf Informationen (klicken Sie im xcode-Bereich auf die Ausrichtung, und drücken Sie dann Befehl-I, oder klicken Sie auf Ablage >Informationen).
  3. Wählen Sie die Registerkarte „Erstellen“.
  4. Doppelklicken Sie im Abschnitt Verknüpfungen der Einstellungsliste auf die Eigenschaft Andere Verknüpfungsflags, und fügen Sie folgendes Flag hinzu:
      -all_load -ObjC
    
  5. Wählen Sie die Registerkarte „Allgemein“, und klicken Sie im Abschnitt Verknüpfte Bibliothek auf die Plusschaltfäche.
    Darauf wird ein Dialogfeld angezeigt. Klicken Sie auf die Schaltfläche Add Other... (Weitere hinzufügen).
  6. Wählen Sie nun die Datei libBrightcoveMediaAPI.a, die sich in der „Video Cloud-Medien-API“-ZIP-Datei im Ordner lib befindet.
  7. Wiederholen Sie Schritte 5 und 6 für die Datei libBCiPhoneKit.a, die sich in der „Video Cloud-iPhone-Kit“-ZIP-Datei im Ordner lib befindet.
  8. Schließen Sie die Ausrichtungseinstellungen.
  9. Öffnen Sie die Projekteinstellungen (Projekt > Projekteinstellungen bearbeiten).
  10. Fügen Sie im Abschnitt Suchpfade im Eintrag Kopfzeilen-Suchpfade das Verzeichnis hinzu, in dem Sie die Video Cloud-Media-API-ZIP-Datei auf dem Computer abgelegt haben, gefolgt von /lib. Falls Sie bc-media-api-1.2.1 beispielsweise unter /Developer/Brightcove auf dem Computer gespeichert haben, geben Sie Folgendes ein: /Developer/Brightcove/bc-media-api-1.2.1/lib. WICHTIG: Das Kontrollkästchen „Rekursiv“ muss aktiviert sein.
  11. Fügen Sie im Abschnitt „Suchpfade“ im Eintrag „Kopfzeilen-Suchpfade“ das Verzeichnis hinzu, in dem Sie die ZIP-Datei des Video Cloud-iPhone-Kits auf dem Computer abgelegt haben, gefolgt von /lib. Falls Sie bc-ipad-iphone-kit-1.1.0 unter /Developer/Brightcove auf dem Computer gespeichert haben, geben Sie /Developer/Brightcove/bc-ipad-iphone-kit-1.1.0/lib ein. WICHTIG: Das Kontrollkästchen „Rekursiv“ muss aktiviert sein.
  12. Schließen Sie die Projekteinstellungen.
  13. Fügen Sie Ihrem Projekt die erforderlichen Apple-Frameworks hinzu. Alle diese Frameworks müssen im Abschnitt „Frameworks“ Ihres Projekts in Xcode vorhanden sein:
  • Foundation.framework
  • CoreGraphics.framework
  • UIKit.framework
  • MediaPlayer.framework
  • OpenGLES.framework
  • QuartzCore.framework.

Falls eines dieser Frameworks fehlt, klicken Sie mit der rechten Maustaste auf die Gruppe „Frameworks“ in Xcode, wählen Sie Hinzufügen und Vorhandene Frameworks... aus, um einen Dateibrowser zu öffnen, mit dem Sie Frameworks auswählen und Ihrem Projekt hinzufügen können. HINWEIS: Falls Sie nur die Video Cloud-Medien-APIs und nicht den Video Cloud-iPhone-Videoplayer verwenden möchten, müssen MediaPlayer.framework, OpenGLES.framework und QuartzCore.framework nicht enthalten sein.

  1. Wenn Sie den Video Cloud-iPhone-Videoplayer verwenden, müssen Sie das Video Cloud-Bildpaket hinzufügen:
  • Suchen Sie das Verzeichnis, in dem Sie das Video Cloud-iPhone-Kit auf dem Computer abgelegt haben. Es enthält die Datei BCMoviePlayer.bundle.
  • Ziehen Sie diese Datei in das Xcode-Projekt, oder klicken Sie mit der rechten Maustaste in Xcode auf das Projektverzeichnis, wählen Sie Hinzufügen > Vorhandene Dateien... aus, und wählen Sie das Paket aus, um es hinzuzufügen.

    Sie können diese Bilder selbst auswählen, indem Sie sie im Paket einfach ersetzen. Für die neuen Bilder müssen jedoch dieselben Namen verwendet werden.

Nutzung der Medien-API

Die Klasse BCMediaAPI ist eine Fassade für alle Video Cloud-Medien-API-Aufrufe. Dies ermöglicht Entwicklern die einmalige Instantiierung für alle erforderlichen Aufrufe:

    BCMediaAPI *bc = [[BCMediaAPI alloc] initWithReadToken:@"MyApiKey"];

Aufrufe werden mithilfe von Fehlerhinweisen im Cocoa-Stil behandelt. Daher gilt folgendes Muster für sämtliche Aufrufe:

  1. Erstellen Sie ein NSError-Objekt, wenn Sie Fehlerinformationen wünschen (optional).
  2. Rufen Sie eine BC-Medien-API-Methode auf, die BCVideo, BCPlaylist oder BCItemCollection zurückgibt.
  3. Prüfen Sie, ob das zurückgegebene BCObject null ist. Ist dies der Fall, prüfen Sie NSError (falls verwendet).
  4. Falls das zurückgegebene BCObject nicht null ist, öffnen Sie die Eigenschaften entsprechend den Anforderungen der App.

Beispielcode der Medien-API

// Fügen Sie diese Zeile in die Quelle ein (unkommentiert):
// #import "BCMediaAPI.h"

 BCMediaAPI *bc = [[BCMediaAPI alloc] initWithReadToken:@"MyApiKey"];

 NSError *err;
 BCVideo *video = [bc findVideoById:1234 error:&err];
 
 if (!video) {
 // Falls das Ergebnis null ist und wir das optionale Fehlerargument 
 // gesendet haben,wird der Fehler vom Video Cloud-Server mit allen zugrundeliegenden 
 // Fehlern gefüllt,die gemeldet wurden. Wir können die folgende komfortable Methode 
 // verwenden,um die userInfo von NSError, in der die zugrundeliegenden Fehler gemeldet 
 // wurden,in einem NSString zur Protokollierung oder zu anderen Zwecken zu sichern:
 
 NSString *errStr = [bc getErrorsAsString:err];
 NSLog(errStr);
 }

Player-Komponentennutzung

Die Klasse BCPlayer ist die öffentliche Komponente, in der Sie Videos wiedergeben und stoppen können:

    BCPlayer *bcPlayer = [[BCPlayer alloc] init];

Sie geben ein Video anhand einer Instanz der Klasse BCVideo wieder, die sich in der BCMedia-API befindet. Obwohl diese BCVideo-Instanz in der Regel anhand der BC-Medien-API dynamisch abgerufen wird, kann sie ebenso programmgesteuert erstellt werden. Sie können zudem anhand der BC-Medien-API eine BCVideo-Instanz abrufen und danach die Eigenschaften der Instanz durch programmgesteuertes Festlegen überschreiben.

 BCVideo *myVideo = [[self getVideoObject:videoId] retain];
 [bcPlayer play:activeVideo]; 

Wenn Sie die Freigabe zulassen möchten, sollten Sie zudem eine playerId in der BCPlayer-Instanz festlegen, damit die E-Mail- und Twitter URL-Links zusammengestellt werden können, damit Benutzer zum richtigen webbasierten Video Cloud-Player weitergeleitet werden.

Falls Sie ähnliche oder beliebte Videos im Player als Coverflow-Overlays anzeigen möchten, fügen Sie diese Arrays der BCVideo-Instanzen dem Player hinzu.

Registrieren Sie BCPlayerDelegate auf dem BCPlayer, der das BCPlayerDelegate-Protokoll implementiert, um eine Nachricht zu erhalten, wenn verschiedene Ereignisse im Player auftreten:

    bcPlayer.delegate = self;

Die Delegiertenrückrufe ermöglichen unter anderem den Zugriff auf folgende Ereignisse:

  • Das Hauptvideo ist beendet
  • Ein ähnliches Video wurde vom Benutzer ausgewählt

BCPlayer-Beispielcode

// Fügen Sie diese Zeile in die Quelle ein (unkommentiert): 
// #import "BCPlayer.h" 
- (void) playMyMovie { 
 NSString *apiKey = @"keyWithAdditionalURLPrivileges"; 
 bcAPI = [[BCMediaAPI alloc] initWithReadToken:@"MyApiKey"]; 
 double videoId = 25348489001L; 
 bcPlayer = [[BCPlayer alloc] init]; 
 bcPlayer.delegate = self; 
 bcPlayer.playerId = 25309144001L; 
 
 // Ohne dieses Element funktioniert die Freigabe nicht 
 // Verwenden Sie BCMediaAPI zum Erstellen einer BCVideo-Instanz: 
 activeVideo = [[self getVideoObject:videoId] retain]; 

 // Legen Sie auf Wunsch beliebte und ähnliche Videos fest, was entweder programmgesteuert 
 // durch Erstellen von BCVideo-Objekten oder automatisch über BCMediaAPI erfolgt: 
 bcPlayer.popularVideos = [self getPopularVideos]; 
 bcPlayer.relatedVideos = [self getRelatedVideos:videoId]; 
 
 // HINWEIS: Falls Sie keine ähnlichen oder beliebten Videos festlegen, erscheint das Videomenü nicht 
 // HINWEIS: Falls Sie ähnliche, aber keine beliebten Videos festlegen (oder umgekehrt), erscheint zwar 
 // die Videonavigation, aber der Schalter zum Wechseln zwischen beliebten und ähnlichen Videos 
 // erscheint nicht.
 // Alle folgenden Einstellungen sind standardmäßig auf „true“ gesetzt, Sie können sie jedoch überschreiben, 
 // um zu steuern, welche Menüs erscheinen: 
 bcPlayer.shareMenuEnabled = NO; 
 bcPlayer.moreVideosMenuEnabled = YES; 
 bcPlayer.showRelatedMoviesOnComplete = YES; 

 // Standardmäßig werden ähnliche und beliebte Videos mithilfe einer Coverflow-Benutzeroberfläche gerendert, 
 // Sie können aber stattdessen auch eine UITableView verwenden, indem Sie diese Eigenschaft auf NEIN setzen. 
 // Sie können dies tun, wenn Sie Leistungsprobleme mit Coverflow in einer bestimmten Anwendung feststellen 
 // (der Wert dieser Eigenschaft ist standardmäßig auf JA festgelegt) 
 bcPlayer.useCoverflow = YES; 

 // Video abspielen 
 [bcPlayer play:activeVideo]; 
} 

#pragma mark BCPlayerDelegate callback methods 

- (void) playerComplete {
 NSLog(@"Player Is Complete");
}

- (void) selectedRelatedVideo:(BCVideo *) relatedVideo { 

// Die App hat die Möglichkeit, die Steuerung zurückzuerlangen, die playerId zur Freigabe zu ändern usw. 

 bcPlayer.playerId = 25309144001L; // Möglicherweise müssen Sie die playerId für ein neues Video ändern, damit die Freigabe funktioniert
}

Falls Sie Hilfe benötigen oder Fragen haben, besuchen Sie unsere Foren. Oder folgen Sie dem Video Cloud-App-SDK für iOS auf Twitter: http://twitter.com/bciphonesdk oder registrieren Sie sich, damit Sie Updates und Ankündigungen für unsere mobilen SDKs per E-Mail erhalten.

Tags
apps, iOS, iPad, iPhone, iTunes