2014-04-01 2 views
2

Я получил файл с фильмами из своей библиотеки фотографий iPhone и сохранил их в папке «Мои документы». Когда я нажимаю один файл фильма, я хочу использовать MPMoviePlayerController для его воспроизведения. К сожалению, он не смог воспроизвести файл фильма с такой ошибкой:Ошибка MPMoviePlayerController с itemFailedToPlayToEnd

_itemFailedToPlayToEnd: { 
    kind = 1; 
    new = 2; 
    old = 0; 
    } 

Я искал долгое время, чтобы решить эту проблему. Кто-то говорит, что формат, возможно, не поддерживается. Файл фильмов извлекается из библиотеки фотографий, поэтому формат должен быть в порядке. Кроме того, я копирую файл в NSBundle, и MPMoviePlayerController может его воспроизвести. Итак, файл в порядке. Ниже мои коды:

NSString *newstr = [mFilePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    DLog(@"the raw is %@ the newstr is %@", mFilePath, newstr); 
    NSURL *url = [NSURL URLWithString:newstr]; 
    DLog(@"the url is %@", url); 
#if 0 
    NSBundle *bundle = [NSBundle mainBundle]; 
    if (bundle) { 
     NSString *path = [bundle pathForResource:@"test" ofType:@"MOV"]; 
     if (path) { 
      url = [NSURL fileURLWithPath:path]; 
      DLog(@"the new url is %@", url); 
     } 
    } 
#endif 

    mPlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
    [mPlayer setMovieSourceType:MPMovieSourceTypeFile]; 
    [mPlayer prepareToPlay]; 
    [mPlayer.view setFrame:self.view.bounds]; 

    [mPlayer play]; 
    [self.view addSubview:mPlayer.view]; 

Can someone help me ? Thanks in advances! 
+0

получение той же ошибки, но не тогда, когда я играю непосредственно с сервера ... –

ответ

0

Изменение:

NSURL *url = [NSURL URLWithString:path]; 

к

NSURL *url = [NSURL fileURLWithPath:path]; 

установил ее для меня, то:

mPlayer.contentURL = url; 
[mPlayer prepareToPlay]; 

но вы уже делаете это правильно. Я создаю mPlayer один раз, а затем просто сменю contentURL (вместо alloc + initWithContentURL) для разных видео. Вы пробовали это?

Смежные вопросы