Ich versuche, ein kurzes 6-Sekunden-Video in meiner Ansicht mit MPMoviePlayerController zu spielen und möchte, dass es endlos läuft. Ich habe den folgenden Code, dies zu erreichen:Mögliche Threadprobleme beim Looping von MPMoviePlayerController Video
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"MyVideo" ofType:@"m4v"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
moviePlayerController.view.frame = CGRectMake(10, 240, 300, 163);
moviePlayerController.controlStyle = MPMovieControlStyleNone;
moviePlayerController.repeatMode = MPMovieRepeatModeOne;
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];
Das Problem ist, dass das Video in einer Schleife abgespielt wird, wie gewünscht, aber dann schließlich stoppt nach einer zufälligen Anzahl von Iterationen. Beachten Sie, dass die Dateigröße des Videos sehr klein ist (weniger als 500 KB).
Nach einigem Nachdenken spekulierte ich, dass das Verhalten der Tatsache zugeschrieben werden kann, dass ich den oben genannten Code innerhalb des Hauptthreads ausführe. In dem Bemühen, den obigen Code in einem eigenen Thread laufen zu lassen, habe ich versucht, die folgende:
- (void)viewDidLoad
{
[super viewDidLoad];
[NSThread detachNewThreadSelector:@selector(playVideo) toTarget:self withObject:nil];
}
-(void) playVideo
{
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"MyVideo" ofType:@"m4v"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
moviePlayerController.view.frame = CGRectMake(10, 240, 300, 163);
moviePlayerController.controlStyle = MPMovieControlStyleNone;
moviePlayerController.repeatMode = MPMovieRepeatModeOne;
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];
}
Nun ist das Problem, dass der Rahmen der MPMoviePlayerController Sicht erscheint nur als ein schwarzes Rechteck, wo das Video, aber keine Videospiele sein sollte .
Ich würde wirklich jede Hilfe schätzen, wie man es wie gewünscht zur Arbeit bringt (es ist mir egal, ob es mit oder ohne zusätzliche Threads ist). Alles, was ich brauche, ist ein Video, das kontinuierlich abgespielt wird.
Vielen Dank im Voraus!