2016-03-30 13 views
0

ich von MPMoviePlayerViewController zu AVPlayer für Video-Wiedergabe in meiner Implementierung wechseln bin versucht, sieht ähnlich aus, etwas zu dieserUmzug von MPMoviePlayerViewController zu AVPlayer und Streaming m3u8

NSURL *movieURL = [NSURL URLWithString:@"http://example.com/somefile.m3u8"]; 
movieController = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL]; 
movieController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming; 
[self presentMoviePlayerViewControllerAnimated:movieController]; 
[movieController.moviePlayer play]; 

Meiner AVPlayer Version spielt alles, aber der gewünschten m3u8 Strom. Es schafft es, die Datei zu finden und die AVPlayerViewController zeigt die richtige Dateidauer, hängt aber mit einer Aktivitätsanzeige und beginnt nie wirklich zu spielen.

NSURLComponents *comp = [NSURLComponents componentsWithString:url.absoluteString]; 

AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:comp.URL options:nil]; 
AVAssetResourceLoader *loader = asset.resourceLoader; 
[loader setDelegate:self queue: dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)]; 
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:asset]; 
self.player = [AVPlayer playerWithPlayerItem:playerItem]; 

Ich habe einen Beobachter über den Status und es spielt schließlich, wenn AVPlayer ‚Status ReadyToPlay ist. kann ich mir nicht vorstellen kann alles spielen MPMoviePlayerController kann so wie würde die richtige Umsetzung für dieVersion, um dies zu arbeiten.

Antwort

0

Wie in Ihrem vorherigen Code (wo Sie [movieController.moviePlayer play]; tat.
Ich glaube, Sie Ihren Player starten soll.
[self.player play];.