2016-03-23 9 views
2

Ich versuche, ein Video von einer Remote-URL mit AVPlayer abzuspielen. Es ist ein sehr einfaches Setup: Laden Sie den View-Controller und richten Sie in der viewDidLoad den AVPlayer mit der URL ein und spielen Sie ihn ab. Das ist mein Code in viewDidLoad:Video von Remote-URL mit AVPlayer wiedergeben

NSString *urlString = @"http://download.wavetlan.com/SVV/Media/HTTP/MOV/ConvertedFiles/MediaConvert/MediaConvert_test4_1m10s_MPEG4SP_VBR_383kbps_320x240_30fps_AACLC_VBR_60kbps_Stereo_44100Hz.mov"; 
NSURL *url = [NSURL fileURLWithPath:urlString]; 
self.item = [AVPlayerItem playerItemWithURL:url]; 
self.player = [[AVPlayer alloc] initWithPlayerItem:self.item]; 
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:self.item]; 
playerLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); 
playerLayer.backgroundColor = [UIColor greenColor].CGColor; 
[self.view.layer addSublayer:playerLayer]; 
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; 
[self.player play]; 
self.player.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

Aber wenn die Ansicht lädt, passiert nichts. Der Bildschirm ist nur grün (weil ich die playerLayer grün eingestellt habe), also weiß ich, dass es da ist. Es spielt einfach nicht. Sie können diesen URL-String auch testen, es ist eine gültige URL. Die Größe der Datei beträgt 3,8 MB. Ich habe die URL von einigen Test-URLs hier: http://download.wavetlan.com/SVV/Media/HTTP/http-mov.htm

Also, ich habe den Player, die playerLayer, das Element und die URL korrekt initialisiert. Aber nichts erscheint auf dem Bildschirm. Eine Sache, die ich im Debugger bemerkte, ist, dass die NSURL und die tatsächliche Zeichenfolge der URL am Ende unterschiedlich sind. Vielleicht könnte das eine Hilfe sein, aber ich bin mir nicht sicher, wie ich das ändern soll. Hier ist ein Foto:

enter image description here

Auch Ich teste diese auf einem iOS-8.4-Gerät, so dass ich weiß, dass es nicht die App Transportsicherheit ist, dass die HTTP-Adresse blockiert.

was könnte ich hier falsch machen ?? jede Hilfe wird geschätzt. Vielen Dank.

Antwort

6

ändern diese:
NSURL *url = [NSURL fileURLWithPath:urlString];
dazu:
NSURL *url = [NSURL URLWithString:urlString];

fileURLWithPath wird genrally verwendet url aus dem lokalen Dateisystem zu laden, während Sie url aus dem Internet verwenden, sollten Sie verwenden URLWithString

Verwandte Themen