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.
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.
Vous pourrez également obtenir une application gratuite pour iPhone et iPad dans l’App Store d’iTunes.
Pour installer le SDK d'application Video Cloud pour iOS :
-all_load -ObjC
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.
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 :
// 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);
}
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 :
// 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.