Este documento describe una aplicación que hemos creado con la versión 2.0 del SDK de aplicaciones Brightcove para el sistema operativo iOS. Si desea más información sobre el SDK, incluyendo el paquete de documentación descargable que explica cómo utilizar el SDK para generar aplicaciones para el iPhone, lea Introducción al SDK de aplicaciones Brightcove para iOS.
Descargue el código fuente One Planet for iPhone Source.
Puede que ya conozca la aplicación One Planet descrita en un artículo anterior. Este artículo trata de una aplicación paralela nativa para el iPhone y el iPod Touch, a diferencia de una aplicación web ejecutada a través del navegador para móviles Safari. Por simplificar, nos referiremos a la aplicación de ejemplo nativa One Planet simplemente como "One Planet".
Consulte también estos documentos sobre el SDK de aplicaciones Brightcove para iOS:
Visión general de One Planet:
Hemos desarrollado One Planet con el SDK de aplicaciones Brightcove para iOS y las APIs Media Read de Brightcove. Este SDK, actualmente en desarrollo, proporciona un entorno que permite crear aplicaciones nativas para iOS con el fin de entregar vídeo de Brightcove tanto en dispositivos iPhone y iPad como en otros dispositivos iOS. Más información sobre la instalación y el uso del SDK de aplicaciones Brightcove para iOS.
Existen dos maneras de comenzar a utilizar One Planet en su dispositivo:
Antes de poder instalar One Planet en su dispositivo mediante Xcode, deberá solicitar y recibir un certificado ("development certificate") y un perfil ("provisioning profile"). Para obtenerlo, visite el "iPhone Developer Program" en Apple Developer Connection.
La instalación mediante Xcode asume que usted ya dispone de Xcode y que tiene instalado el iPhone SDK de Apple en su equipo. Descargue el SDK de aplicaciones Brightcove para iOS y abra el archivo BrightcoveDemo.Xcodeproj. Puede ejecutar One Planet en su dispositivo o en el simulador de iPhone integrado en Xcode. Si decide instalar y ejecutar One Planet en su dispositivo, asegúrese de que el dispositivo esté conectado a Internet. Cuando haya elegido un destino de instalación, haga clic en Build & Go y One Planet se compilará, instalará y ejecutará en el destino.
One Planet puede descargarse de iTunes Store. Después de descargar e instalar la aplicación, selecciónela en la pantalla de su dispositivo.
La mejor manera de describir el comportamiento de One Planet es mediante una serie de supuestos de usuario, comenzando por el arranque de la aplicación.
Al ejecutar One Planet, la vista predeterminada inicial es "Channels". Esta vista se alimenta mediante una llamada PlaylistTableViewController.fetchAllPlaylists, que devuelve una colección BCItemCollection de listas de reproducción a la pantalla, con un límite de 10 listas.
Cuando se selecciona un canal, se asigna un nuevo VideoTableViewController y se añade al controlador de navegación. Para cargar los vídeos del canal, VideoTableViewController genera una llamada a loadTableDataFromBrightcoveForPlaylist.
- (void)loadTableDataFromBrightcoveForPlaylist {
// show a 'loading' indicator and then tear down
BrightcoveDemoAppDelegate *delegate = (BrightcoveDemoAppDelegate *)[[UIApplication sharedApplication] delegate];
BCMediaAPI *bc = delegate.bcServices;
NSError *err;
BCPlaylist *playlist = [bc findPlaylistById:self.playlistId videoFields:[NSArray arrayWithObjects:@"id", @"FLVURL", @"thumbnailURL", @"name", @"shortDescription", @"renditions", nil] playlistFields:[NSArray arrayWithObjects:@"name", @"videos", nil] customFields:nil error:&err];
if (!playlist) {
[ErrorHandlerService logMediaAPIError:err];
}
self.videos = playlist.videos;
self.title = playlist.name;
[self.tableView reloadData];
}
El objeto BCPlaylist contiene una lista de vídeos.
Cuando un espectador selecciona la vista "Vídeos más recientes", se asigna un VideoTableViewController y se añade al controlador de navegación. VideoTableViewController genera una llamada a initWithNibAndType, especificando listType como RECENT_VIDEOS. En el método initWithNibAndType se genera una llamada a loadTableDataFromBrightcoveForAllVideos.
- (void)loadTableDataFromBrightcoveForAllVideos {
//[self showLoaderScreen];
BrightcoveDemoAppDelegate *delegate = (BrightcoveDemoAppDelegate *)[[UIApplication sharedApplication] delegate];
BCMediaAPI *bc = delegate.bcServices;
BCSortOrderType sortOrder;
NSError *err;
BCItemCollection *videoCollection;
if (videoListType == POPULAR) {
sortOrder = BCSortByTypePlaysTrailingWeek;
}
else {
sortOrder = BCSortByTypeModifiedDate;
}
videoCollection = [bc findAllVideos:10 pageNumber:0 sortBy:sortOrder sortOrder:BCSortOrderTypeDESC getItemCount:NO videoFields:[NSArray arrayWithObjects:@"id", @"FLVURL", @"thumbnailURL", @"name", @"shortDescription", @"renditions", nil] customFields:nil error:&err];
if (!videoCollection) {
[ErrorHandlerService logMediaAPIError:err];
}
self.videos = videoCollection.items;
[self.tableView reloadData];
}
En loadTableDataFromBrightcoveForAllVideos, el parámetro sortBy se define como BCSortByTypeModifiedDate, el orden de clasificación sortOrder se ajusta a DESC (descendente) y se efectúa una llamada a BCMediaAPI.findAllVideos con estos parámetros. Se devuelve una colección BCItemCollection de vídeos, con un límite de 10 vídeos.
Al seleccionar la vista de vídeos populares ("Popular Videos"), se asigna un VideoTableViewController y se añade al controlador de navegación. VideoTableViewController genera una llamada a initWithNibAndType, especificando listType como POPULAR. En el método initWithNibAndType se genera una llamada a loadTableDataFromBrightcoveForAllVideos. En loadTableDataFromBrightcoveForAllVideos, el parámetro sortBy se define como BCSortByTypePlaysTrailingWeek, el orden de clasificación sortOrder se ajusta a DESC (descendente) y se efectúa una llamada a BCMediaAPI.findAllVideos con estos parámetros. Se devuelve una colección BCItemCollection de vídeos, con un límite de 10 vídeos.
- (void)loadTableDataFromBrightcoveForAllVideos {
//[self showLoaderScreen];
BrightcoveDemoAppDelegate *delegate = (BrightcoveDemoAppDelegate *)
[[UIApplication sharedApplication] delegate];
BCMediaAPI *bc = delegate.bcServices;
BCSortOrderType sortOrder;
NSError *err;
BCItemCollection *videoCollection;
if (videoListType == POPULAR) {
sortOrder = BCSortByTypePlaysTrailingWeek;
}
else {
sortOrder = BCSortByTypeModifiedDate;
}
videoCollection = [bc findAllVideos:10 pageNumber:0 sortBy:sortOrder
sortOrder:BCSortOrderTypeDESC getItemCount:NO
videoFields:[NSArray arrayWithObjects:@"id", @"FLVURL", @"thumbnailURL", @"name",
@"shortDescription", @"renditions", nil] customFields:nil error:&err];
if (!videoCollection) {
[ErrorHandlerService logMediaAPIError:err];
}
self.videos = videoCollection.items;
[self.tableView reloadData];
}
Cada fila de las vistas "Channel", "Newest" y "Popular" contiene una miniatura del vídeo en la ventana izquierda, y a la derecha el título del vídeo y una breve descripción. Éstos se alimentan con el método VideoTableViewController.tableView. Al seleccionar una fila, se realiza una llamada al método VideoPlayerService.playVideo para iniciar la reproducción del vídeo. La implementación mostrará una pantalla de carga inicial que se fusionará con el reproductor de vídeo nativo cuando se haya cargado un número suficiente de bits del vídeo.
Al cambiar a la vista BC Wall, se asigna un BrightcoveWallViewController y se añade al controlador de navegación. Se efectúa una llamada a la Media API de Brightcove con el parámetro especificado listType (POPULAR o NEWEST), devolviendo una colección de vídeos BCItemCollection, con un límite de 60. Con un máximo de 15 vídeos por página, la vista BC Wall consta de 4 páginas de miniaturas de vídeo.
- (id)initWithType:(videoList) pListType {
[super init];
listType = pListType;
return self;
}
Las principales funciones de la vista Player, como el desplazador ("scrubber") y los controles de depuración, no forman parte del SDK de aplicaciones Brightcove para iOS, sino que son componentes esenciales del reproductor multimedia de Cocoa Touch. Sin embargo, el wrapper de BCMoviePlayerController proporciona una interfaz para el reproductor multimedia de Cocoa Touch, así como los controles de vídeos relacionados ("Related Videos") y de compartición ("Sharing").
Cuando se selecciona un vídeo de una lista de reproducción, se envía la vista detallada del vídeo al UINavigationController. Allí se presenta la posibilidad de reproducir el vídeo o de compartirlo.
Al seleccionar el botón de compartición en la vista detallada del vídeo se abre la vista de compartición, con opciones de correo electrónico y de Twitter.
Al seleccionar el botón de correo electrónico ("Email") se abre la vista de correo electrónico de la aplicación proporcionada por Apple. También se puede configurar la vista de compartición para abrir la aplicación externa.
Al seleccionar el botón Twitter, comienza el proceso de conexión OAuth, que permite trabajar en Twitter tras iniciar sesión.
Si necesita ayuda o tiene cualquier pregunta, visite nuestros foros. También puede seguir la evolución del SDK de Brightcove para el iPhone en Twitter: http://twitter.com/bciphonesdk o registrarse para obtener actualizaciones y noticias por correo electrónico sobre nuestros SDKs para dispositivos móviles.