38 votos

Implementación de HTTP Live Streaming en iOS

Quiero escribir un poco de iOS video de cliente y tiene que usar HTTP Live Streaming. Los videos vienen de un Wowza Media Server que admite HTTP Live Streaming, por lo que la implementación de servidor no es mi problema. Ya he reloj de la WWDC videos y leer la documentación de Apple acerca de HTTP Live Streaming.

Pero no hay ningún lugar se explica cómo reproducir los vídeos en un dispositivo iOS. En la WWDC hablar mencionó que hay 3 en las posibilidades para mostrar los vídeos:

  • UIWebView
  • MPMoviePlayerController
  • AVPlayerItem

Cual es el mejor?

Y ¿cómo puedo leer el vídeo de la dirección URL de una Página HTML como estos, que pasan a ser proporcionados por el servidor?

<html>
<head>
    <title>HTTP Live Streaming Example</title>
</head>
<body>
    <video
        src="http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"
        height="300" width="400"
    >
    </video>
</body>
</html>

(Fuente: Apple HTTP Live Streaming Resumen)

Yo realmente no sé por dónde empezar con la codificación...tal vez alguien lo sabe mejor ejemplo de código que las molestas "Cosido Stream Player" o puede escribir un pequeño tutorial...

39voto

Chris Lavender Puntos 848

Un cortocircuito y el punto de aplicación. El incluido URL puntos en una secuencia válida (a partir del 17/07/2012), pero sólo puede sustituir con su propia dirección URL de un archivo de .m3u8.

#import <MediaPlayer/MediaPlayer.h>
@interface ViewController ()
@property (strong, nonatomic) MPMoviePlayerController *streamPlayer;
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSURL *streamURL = [NSURL URLWithString:@"http://www.thumbafon.com/code_examples/video/segment_example/prog_index.m3u8"];

    _streamPlayer = [[MPMoviePlayerController alloc] initWithContentURL:streamURL];

    // depending on your implementation your view may not have it's bounds set here
    // in that case consider calling the following 4 msgs later
    [self.streamPlayer.view setFrame: self.view.bounds];

    self.streamPlayer.controlStyle = MPMovieControlStyleEmbedded;

    [self.view addSubview: self.streamPlayer.view];

    [self.streamPlayer play];
}

- (void)dealloc
{
     // if non-ARC
    // [_streamPlayer release];
    // [super dealloc];
}

@end

4voto

jab Puntos 1836

Si señalas un UIWebView en ese destino m3u8 URL, sólo funcionará.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X