iOS : Ejercicio 20. Reproduciendo video en nuestro iPhone

Blog >Lista ejercicios >  Ejercicio 20

Hola developers, continuamos con los ejercicios básicos en iOS con el numero 20.




Ejercicio 20 : Reproducción video en iPhone :
iOS soporta la mayoria de los codecs de video, el más común es .mp4 (sistema H263, H264)

En este ejercicio primero lo haremos insertando el vídeo en el proyecto, además del framework necesario: MediaPlayer por medio de una vista. 

Creamos un proyecto de la forma habitual: create new proyect - single view application :




Después añadimos el framework necesario para hacer el objeto MPMoviePlayer, así que sobre el proyecto hacemos click y en Build Phases, en la opción Link Binary With Libraries pulsando el + añadimos la libreria MediaPlayer.framework.




Ahora hacemos la instancia global MPMoviePlayerController, que va a ser donde se va a reproducir nuestro vídeo, lo hacemos en el archivo .h; añadimos video al proyecto, no olvidemos importar la librería. 

Clickamos en el botón derecho en la carpeta del proyecto y seleccionando Add Files to "nombreProyecto", seleccionamos el archivo y lo añadimos :

.H

//  ViewController.h
//  Reproductor_video
//  Copyright (c) 2014 ___FULLUSERNAME___. All rights reserved.
//
#import 
#import 
@interface ViewController : UIViewController
@property (nonatomic,strong) MPMoviePlayerController *Reproductor;
@end


Por último ponemos en el código .M ponemos el código necesario para reproducir el vídeo que anteriormente hemos importado al proyecto

.M

//  ViewController.m
//  Reproductor_video
//
//  Created by makone moreno on 12/09/14.
//  Copyright (c) 2014 ___FULLUSERNAME___. All rights reserved.
//
#import "ViewController.h"

@interface ViewController ()
@end

@implementation ViewController
@synthesize Reproductor;
- (void)viewDidLoad
{
    [super viewDidLoad];
    //INSTANCIAMOS EL VIDEO
    NSString *video= [[NSBundle mainBundle]pathForResource:@"shark" ofType:@"mp4"];
    //RUTA DEL VIDEO
    NSURL *direccion= [[NSURL alloc]initFileURLWithPath:video];
    //INICIALIZAMOS
    Reproductor=[[MPMoviePlayerController alloc] initWithContentURL:direccion];
    //CONFIGURAMOS LA PROPIEDAD VIEW DEL REPRODUCTOR PARA ASIGNARLE UN TAMAÑO
    Reproductor.view.frame=CGRectMake(30, 30, 200, 200);
    //Y AHORA SU VISTA LA AÑADIMOS A LA VISTA PRINCIPAL
    [self.view addSubview:Reproductor.view];
    [Reproductor play];
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
@end


Ejecutamos el proyecto para probarlo.

También podemos usar MPMoviePlayerController para reproducir videos en streaming.

Los vídeos suelen ser ficheros grandes que pueden tardar en cargarse un tiempo determinado.Para todo aquel que no sepa que significa "in Streaming", se hace referencia al video que se graba en modo "online" es decir, en directo.

Subimos un video a dropbox, de la misma manera que se explica como subir una imagen aquí.
Si queremos saber cuando ha terminado la carga del vídeo podemos insertarlo a la notificación MPMoviePlayerContentPreloadDidFinishNotification así:

.M

//  ViewController.m
//  Reproductor_video
//
//  Created by makone moreno on 12/09/14.
//  Copyright (c) 2014 ___FULLUSERNAME___. All rights reserved.
//
#import "ViewController.h"

@interface ViewController ()
@end

@implementation ViewController
@synthesize Reproductor;
- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL *url = [NSURL URLWithString:@"https://dl.dropbox.com/s/kgxftmkehugywzm/shark.mp4?dl=0"];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:Reproductor];
    //INICIALIZAMOS
    Reproductor=[[MPMoviePlayerController alloc] initWithContentURL:url];
    //CONFIGURAMOS LA PROPIEDAD VIEW DEL REPRODUCTOR PARA ASIGNARLE UN TAMAÑO
    Reproductor.view.frame=CGRectMake(30, 30, 200, 200);
    //Y AHORA SU VISTA LA AÑADIMOS A LA VISTA PRINCIPAL
    [self.view addSubview:Reproductor.view];
    [Reproductor play];

}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
@end


Y bien este es el resultado, como podeis observar se crean los controles de forma automática sin necesidad de insertar código :






Compartir Compartir Compartir Compartir


Thebestandroide Indice Thebestandroide Ejercicio anterior Thebestandroide Siguiente ejercicio

0 comentarios:

Publicar un comentario