56 votes

Mise en œuvre de la diffusion HTTP en direct sur iOS

Je veux écrire un peu, iOS video client et d'avoir à utiliser le HTTP Live Streaming. Les vidéos proviennent d'un Wowza Media Server qui prend en charge la diffusion HTTP en Direct, de sorte que le côté serveur de la mise en œuvre n'est pas mon problème. J'ai déjà regarder la WWDC de vidéos et de lire la documentation d'Apple à propos de la diffusion HTTP en Direct.

Mais il n'est nulle part expliqué comment lire les vidéos sur un appareil iOS. Dans un WWDC-talk a été mentionné qu'il y a 3 possebilties pour afficher les vidéos:

  • UIWebView
  • MPMoviePlayerController
  • AVPlayerItem

Lequel est le meilleur?

Et comment puis-je lire les vidéo-les URL à partir d'une Page HTML comme ceux-ci, qui deviennent fourni par le serveur?

<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>

(Source: Apple HTTP Live Streaming Aperçu)

Je ne sais vraiment pas par où commencer avec le codage...Peut-être que quelqu'un sais de meilleur exemple de code que l'ennuyeux "Cousu Lecteur de Flux" ou pouvez écrire un petit tutoriel...

57voto

Chris Lavender Points 848

Une mise en œuvre courte et pertinente. L'URL incluse pointe vers un flux valide (version 7/17/2012), mais vous pouvez simplement remplacer par votre propre URL vers un fichier .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
 

5voto

jab Points 1836

Si vous pointez un UIWebView sur cette URL m3u8 cible, cela fonctionnera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X