2013-10-02 4 views
7

MPMoviePlayer non sta riproducendo video. Sono in esecuzione iOS 7 e ottenere lo stesso errore sul dispositivo e simulatore:MPMoviePlayer non riproduzione video

2013-10-02 12:49:18.246 xxxx[688:60b] _itemFailedToPlayToEnd: { 
kind = 1; 
new = 2; 
old = 0; 

}

Ho provato la riproduzione di un video dal sistema di Internet e file, ma senza fortuna. Il mio codice è molto semplice:

self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://stream.qtv.apple.com/events/mar/123pibhargjknawdconwecown/12oihbqeorvfhbpiubqnfv3_650_ref.mov"]]; 
    self.moviePlayer.view.frame = self.view.bounds; 
    self.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming; 
    [self.view addSubview:self.moviePlayer.view]; 
    [self.moviePlayer prepareToPlay]; 

L'URL è un film valida: http://stream.qtv.apple.com/events/mar/123pibhargjknawdconwecown/12oihbqeorvfhbpiubqnfv3_650_ref.mov

Ho provato anche utilizzando MPMoviePlayerViewController, ma che non ha funzionato neanche.

+0

vedere http://stackoverflow.com/ domande/22068681/itemfailedtoplaytoend-error-quando-gioco-video-in-MPMoviePlayerController –

risposta

0

Prova questo e scusa per il ritardo di risposta:

NSURL *fileURL = [NSURL URLWithString:@"file url from the internet "]; 
    MPMoviePlayerViewController *moviePlayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL]; 

    [moviePlayerController.moviePlayer setFullscreen:YES animated:YES]; 
    [moviePlayerController.moviePlayer.view setFrame: self.view.bounds]; 
    [moviePlayerController.moviePlayer setControlStyle:MPMovieControlStyleFullscreen]; 
    [moviePlayerController.moviePlayer setMovieSourceType:MPMovieSourceTypeFile]; 

    [self presentMoviePlayerViewControllerAnimated:moviePlayerController]; 
    [moviePlayerController.moviePlayer prepareToPlay]; 
    [moviePlayerController.moviePlayer play]; 
2

MPMovieSourceTypeStreaming sembra essere buggy su iOS 7. mia app, ho lo streaming di un video dal web (come te), e il problema scompare con questo tipo di origine:

self.moviePlayer.movieSourceType = MPMovieSourceTypeFile; 

lo so che è strano perché siamo in streaming il video, ma questa è l'unica soluzione che funziona per me.

Speranza che aiuta :)

0

1.Cambia il file MOV in file MP4, sembra che il giocatore non può supportare il file mov

2.delete il codice self.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;

o cambiare per self.moviePlayer.movieSourceType = MPMovieSourceTypeFile;

3.Aggiungere codice [self.moviePlayer setFullscreen:YES]; dopo [self.view addSubview:self.moviePlayer.view];

Nota: è necessario notare la sequenza, altrimenti si può solo sentire il suono, ma non si può guardare il film

Se si desidera utilizzare MPMoviePlayerViewController, in questo modo:

MPMoviePlayerViewController *moviePlayerViewController; 
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://.../movie.mp4"]];//note:mp4 file 
    [self presentMoviePlayerViewControllerAnimated:moviePlayerViewController]; 

Importante: se il L'URL è un errore, riceverai anche lo stesso errore. ad esempio: questo è sbagliato

moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"movie.mp4"]]; 

a corretta esso:

Se l'URL è un URL web, allora in questo modo:

moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://..../movie.mp4"]]; 

altrimenti se il file è un locale file, quindi in questo modo:

moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"movie" ofType:@"mp4”]]];