Guide de démarrage avec le SDK Video Cloud pour iOS

Product
Video Cloud
S'applique aux utilisateurs
Développeur
Version
Brightcove 5
Édition
Express 499, Pro, Entreprise

Ce document présente le SDK iOS qui permet de développer votre propre application native pour Apple iOS et de diffuser vos vidéos Video Cloud sur les plates-formes iPhone, iPad et les autres plates-formes Apple iOS. Outre ce guide de démarrage rapide, vous pourrez aussi consulter les documents suivants :

Le SDK pour iOS de Video Cloud est un ensemble de bibliothèques Cocoa/Objective-C permettant d’employer l’API médias de Video Cloud et la lecture des vidéos dans un lecteur Video Cloud personnalisé sur les périphériques Apple iOS tels que l'iPhone, l'iPad et l'iPod touch. L’API médias offre une interface Cocoa/Objective-C pour les API vidéo Video Cloud et les sélections. Le lecteur prend en charge le partage par courrier électronique et par Twitter ainsi que les modules vidéo connexes et populaires pour le lecteur vidéo iOS standard.

L'expansion de l'App Store d'iTunes ainsi que le succès de l'iPhone et de l'iPad le démontrent : la demande continue de croître dans les médias mobiles. En utilisant ce SDK pour créer une application iOS native, vous serez en mesure de proposer une expérience unique à vos utilisateurs. Vous pouvez facilement accéder à votre contenu vidéo et aux métadonnées grâce au SDK. Vous pouvez ainsi développer des applications sur mesure et assurer la visibilité de votre marque auprès de votre public.

Si vous pensez mettre au point une application iOS, il n’est jamais trop tôt pour préparer votre contenu vidéo en vue d’une diffusion sur les périphériques mobiles. Pour en savoir plus sur l’encodage vidéo pour diffusion mobile, cliquez ici. Si vous pensez créer une application Web mobile, découvrez comment Brightcove peut vous aider.

Le SDK iOS de Video Cloud exige l’utilisation de la version 3.1 ou d’une version supérieure.

Application test OnePlante

Nous avons utilisé la version 2.1 du SDK iOS de Video Cloud pour mettre au point une application native de test pour iPhone et iPad intitulée OnePlanet. Découvrez comment nous avons développé OnePlanet et téléchargez le code source des versions iPhone et iPad.

Vidéo de démonstration OnePlanet

Vous pourrez également obtenir une application gratuite pour iPhone et iPad dans l’App Store d’iTunes.

Installation du SDK iOS de Video Cloud sous Xcode

Pour installer le SDK d'application Video Cloud pour iOS :

  1. Ouvrez Xcode et créez ou ouvrez un projet Xcode.
  2. Sélectionnez la cible du projet et récupérez ensuite les informations (cliquez sur la cible dans le volet Xcode, puis appuyez sur Commande-I ou sur File > Get Info).
  3. Accédez à l'onglet Build (Version).
  4. Double-cliquez sur la propriété Other Linking Flags dans la rubrique Linking de la liste Settings et ajoutez le flag suivant :
      -all_load -ObjC
    
  5. Sélectionnez l'onglet General (Général) et cliquez sur le bouton plus dans la section Linked Library (Bibliothèque liée).
    Une fenêtre va alors défiler. Cliquez sur le bouton Add Other... (Ajouter autre).
  6. Sélectionnez à présent le fichier libBrightcoveMediaAPI.a figurant dans le fichier .zip de l’API médias de Video Cloud (dossier lib).
  7. Répétez l'étape 5 et 6 pour le fichier libBCiPhoneKit.a figurant dans le fichier .zip de l'iPhone Kit de Video Cloud (dossier lib).
  8. Fermez la fenêtre de réglage.
  9. Ouvrez la fenêtre Project Settings (Paramètres de projet) (Project > Edit Project Settings).
  10. Dans l’entrée Header Search Paths (Chemins du fichier d’en-tête) de la section Search Paths (Chemins), ajoutez le répertoire dans lequel vous avez placé l’API médias de Video Cloud, suivi de /lib. Par exemple, si vous avez enregistré bc-media-api-1.2.1 at /Developer/Brightcove sur votre ordinateur, vous devrez introduire /Developer/Brightcove/bc-media-api-1.2.1/lib. IMPORTANT : vérifiez si la case « recursive » (récursif) est cochée.
  11. Dans l’entrée Header Search Paths (Chemins du fichier d’en-tête) de la section Search Paths (Chemins), ajoutez le répertoire dans lequel vous avez mis l'iPhone Kit de Video Cloud, suivi de /lib. Par exemple, si vous avez enregistré bc-ipad-iphone-kit-1.1.0 at /Developer/Brightcove sur votre ordinateur, vous devrez introduire /Developer/Brightcove/bc-ipad-iphone-kit-1.1.0/libIMPORTANT : vérifiez si la case recursive » (récursif) est cochée.
  12. Fermez la fenêtre Project Settings.
  13. Ajoutez la fonction Apple frameworks requise pour votre projet. Dans la rubrique « Frameworks » de votre projet sous Xcode, veillez à ce que tous les éléments suivants soient présents :
  • Foundation.framework
  • CoreGraphics.framework
  • UIKit.framework
  • MediaPlayer.framework
  • OpenGLES.framework
  • QuartzCore.framework.

Si l’un de ces éléments fait défaut, cliquez avec le bouton droit sur le groupe correspondant sous Xcode, sélectionnez Add (Ajouter), puis Existing Frameworks… (Frameworks existants) pour afficher le navigateur qui permettra de sélectionner et d’ajouter les éléments à votre projet. REMARQUE : si vous comptez exclusivement utiliser les API médias de Video Cloud et pas le lecteur vidéo pour l’iPhone, vous ne devez pas inclure MediaPlayer.framework, OpenGLES.framework et QuartzCore.framework.

  1. Si vous utilisez le lecteur vidéo Video Cloud pour iPhone, vous devrez ajouter le kit d'images Video Cloud :
  • Indiquez le répertoire dans lequel vous souhaitez placer le iPhone Kit de Video Cloud sur votre ordinateur. Il contient le fichier BCMoviePlayer.bundle.
  • Déplacez ce fichier vers le projet Xcode ou cliquez avec le bouton droit sur l’arborescence sous Xcode, sélectionnez Add > Existing Files... (Ajouter->Fichiers existants…) et sélectionnez le kit pour l’ajouter.

    Vous pouvez mettre en forme vos images en les remplaçant dans le kit, tant que vous conservez les désignations.

Utilisation de l’API médias

La classe BCMediaAPI contient tous les appels de l’API médias de Video Cloud. Elle permet aux développeurs de ne créer qu’une seule instance de tous les appels nécessaires :

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

Les invocations sont prises en charge à l’aide des pointeurs d’erreurs Cocoa. Le modèle de toutes les invocations est le suivant :

  1. Créez un objet NSError si vous souhaitez des informations sur l’erreur (facultatif).
  2. Invoquez une méthode BC Media API qui renverra les résultats suivants : BCVideo, BCPlaylist ou BCItemCollection.
  3. Vérifiez si la valeur BCObject est nulle. Si tel est le cas, examinez la valeur NSError (le cas échéant).
  4. Si la valeur de BCObject n’était pas nulle, parcourez les propriétés en fonction des besoins de votre application.

Exemple de code de l’API médias

// N’oubliez pas d’inclure cette ligne dans votre source (sans commentaire) :
// #import "BCMediaAPI.h"

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

 NSError *err;
 BCVideo *video = [bc findVideoById:1234 error:&err];
 
 if (!video) {
 // Si le résultat est nul, et si nous avons envoyé l'argument d'erreur 
 // facultatif, alors l'erreur mentionnera toutes les erreurs sous-jacentes signalées 
 // par le serveur Video Cloud. À des fins de convivialité, nous pouvons utiliser 
 // la méthode suivante pour éliminer l'userInfo du NSError lorsque les erreurs 
 // sous-jacentes sont signalées, dans une chaîne NSString à des fins de journalisation ou autre :
 
 NSString *errStr = [bc getErrorsAsString:err];
 NSLog(errStr);
 }

Utilisation des composants du lecteur

La classe BCPlayer est un composant public permettant la lecture et l’interruption de vidéos :

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

Vous regardez une vidéo à l’aide d’une instance de la classe BCVideo figurant dans l’API BCMedia. Bien que cette instance BCVideo soit généralement récupérée de manière dynamique à l’aide de l’API BC Media, la création peut aussi être programmée. Vous pourrez également récupérer une instance BCVideo à l’aide de l’API BC Media et contourner les propriétés des instances par une programmation.

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

Si vous souhaitez activer le partage, vous devrez aussi définir une valeur playerId sur l’instance BCPlayer de sorte que les liens associés à la messagerie et à Twitter puissent être composés de sorte à rediriger les utilisateurs vers un lecteur Video Cloud en ligne.

Si vous souhaitez afficher des vidéos connexes ou des vidéos populaires dans le lecteur sous forme de modèle Coverflow, ajoutez les instances BCVideo au lecteur.

Enregistrez la valeur BCPlayerDelegate sur BCPlayer pour appliquer le protocole BCPlayerDelegate permettant de recevoir les informations sur les différents événements du lecteur :

 bcPlayer.delegate = self;

Les rappels délégués permettent l’accès aux événements, dont les suivants :

  • La vidéo principale est terminée
  • Une vidéo connexe a été sélectionnée par l’utilisateur

Code d’exemple de BCPlayer

// N’oubliez pas d’inclure cette ligne dans votre source (sans commentaire) : 
// #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; 
 
 // sans cela le partage ne fonctionnera pas 
 // Utilisez BCMediaAPI pour créer une instance BCVideo : 
 activeVideo = [[self getVideoObject:videoId] retain]; 

 // Définissez la sélection de vidéos populaires et connexes le cas échéant, par programmation 
 // avec la création d’objets BCVideo ou automatiquement à l’aide de BCMediaAPI : 
 bcPlayer.popularVideos = [self getPopularVideos]; 
 bcPlayer.relatedVideos = [self getRelatedVideos:videoId]; 
 
 // REMARQUE : si vous ne définissez pas de vidéos connexes ou populaires, le menu de navigation ne s’affichera pas 
 // REMARQUE : si vous avez défini des vidéos connexes, mais pas de vidéos populaires (ou l’inverse), 
 // la fenêtre de navigation s'affichera, mais le passage aux vidéos populaires et connexes 
 // ne sera pas possible.
 // Tous les réglages ci-dessous sont « True » par défaut, mais vous pouvez modifier cela pour contrôler les menus 
 // qui apparaîtront : 
 bcPlayer.shareMenuEnabled = NO; 
 bcPlayer.moreVideosMenuEnabled = YES; 
 bcPlayer.showRelatedMoviesOnComplete = YES; 

 // Par défaut, les vidéos connexes et populaires sont rendues à l’aide d’un affichage Coverflow, 
 // mais vous pouvez utiliser une fonction UITableView en définissant la valeur NO pour cette propriété 
 // (par exemple, si vous rencontrez des problèmes de performance avec la fonction Coverflow). 
 // La valeur par défaut est YES. 
 bcPlayer.useCoverflow = YES; 

 // Lire la vidéo 
 [bcPlayer play:activeVideo]; 
} 

#pragma mark BCPlayerDelegate callback methods 

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

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

// L’application peut réclamer le contrôle, modifier l’ID du lecteur pour le partage, etc. 

 bcPlayer.playerId = 25309144001L; // vous devrez peut-être changer le playerId pour que le partage fonctionne pour une nouvelle vidéo
}

Si vous avez besoin d’aide ou si vous désirez nous poser des questions, visitez nos forums. Vous pouvez aussi suivre le SDK pour iOS de Video Cloud sur Twitter : http://twitter.com/bciphonesdk ou vous abonner aux mises à jour et annonces sur les SDK mobiles par courrier électronique.

Balises
apps, iOS, iPad, iPhone, iTunes