Video Wiedergabe scheitert - [NSURL initFileURLWithPath:]: nil string-parameter
Ich habe Mühe zu verstehen, warum dies nicht funktioniert :/Immer wenn ich das Projekt ausführen der app stürzt ab, wirft mir ein 'NSInvalidArgumentException', reason: '* -[NSURL initFileURLWithPath:]: nil string-parameter'
Habe ich folgte ein tutorial (ich bin ziemlich neu hier) und es für ihn gearbeitet, und der code ist genau der gleiche.. Kann mir jemand erklären, was Los ist?
.h-Datei
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
#import <QuartzCore/QuartzCore.h>
@interface FirstViewController : UIViewController {
MPMoviePlayerViewController *playerController;
}
-(IBAction)playVideo;
@end
.m-Datei
#import "FirstViewController.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
{
MPMoviePlayerController *mpc;
}
- (IBAction)playButton:(id)sender {
NSString *stringPath = [[NSBundle mainBundle]pathForResource:@"intro" ofType:@"MP4"];
NSURL *url = [NSURL fileURLWithPath:stringPath];
if(url != nil){
mpc = [[MPMoviePlayerController alloc]initWithContentURL:url];
[mpc setMovieSourceType:MPMovieSourceTypeFile];
[[self view]addSubview:mpc.view];
[mpc setFullscreen:YES];
[mpc play];
}
else{
NSLog(@"URL not found");
}
}
@end
- Bevor jemand fragt Reece Darragh besitzt die dev-account, die wir verwenden. Vielen Dank für Eure Hilfe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einzige wichtige Teil des ganzen ist:
Ich nehme an, die Ausnahme wird ausgelöst, innerhalb der zweiten Zeile. Das würde bedeuten, dass
stringPath
war gleich null, das würde passieren, wenn die Dateiintro.MP4
war eigentlich nicht in Ihrem app-bundle.Überprüfen Sie, dass:
die Datei vorhanden ist, geben Sie in Ihre Kopie des Quellcodes
Ihre Xcode-Projekt hat einen Verweis auf diese Datei
(wenn es rot ist, bedeutet es, dass die Datei nicht tatsächlich vorhanden)
In Ihrem Ziel in Xcode, Blick auf "Build-Phasen" und zeigen die "Copy Bundle Resources" build-phase. Diese Datei sollte vorhanden sein. Wenn es nicht, drücken Sie die + - Taste, und wählen Sie es.
Kurt ' s Antwort war für mich speziell die
"In Ihrem Ziel, in Xcode, Blick auf "Build-Phasen" und zeigen die "Copy Bundle Resources" build-phase. Diese Datei sollte vorhanden sein. Wenn es nicht, drücken Sie die + - Taste, und wählen Sie es."
meine Film-Datei fehlt. Es muss dort gewesen sein, bevor, weil es bei der Arbeit war und dann es gerade aufgehört.
Hätte ich einen Kommentar zu Kurt ' s post aber nicht wissen, wie. Ich habe "up-vote".
Neben was erwähnt in dieser Antwort https://stackoverflow.com/a/14179186/3213411, Sie wollen auch sicherstellen, dass die Datei, die Sie verweisen, hat die Mitgliedschaft in der build-Ziel. Können Sie dies in der Datei-Inspektor. Diese Antwort erklärt, wie https://stackoverflow.com/a/5300901/3213411
Dein video ist zu lang. Mit diesem code, der Grenzwert beträgt 30 Sekunden. Ihre beste Wette ist, um Strom von einer url. Spielen Sie ein video kürzer als 30 Sekunden und es funktioniert gut.
iOS 9.2, Xcode 7.2, ARC aktiviert
Ich habe vor kurzem lief in dieses Problem mich. Definitiv das tun, was die ursprünglichen Autoren sind, die darauf hindeutet. Für mich war es der eigentliche name der Datei, dass war das Problem, siehe unten...
Den Namen der Datei:
Zeichen enthalten, die illegal sind, für die Benennung der Datei mit dieser speziellen Methode. Ich denke, man kann es behandeln, und um das Problem, aber es ist einfacher, einfach die Datei umzubenennen.
Nachdem ich umbenannt in:
Alles hat Prima funktioniert.
Hoffe, dies geholfen! Cheers.