MPMoviePlayerController "Загрузка фильма ..." - PullRequest
5 голосов
/ 20 мая 2011

Я пытаюсь воспроизвести видеофайл из папки ресурсов на iPhone с iOS 4.1. MPMoviePlayerViewController отображает представление, но он всегда говорит «Загрузка фильма ...» навсегда с вращающимся индикатором активности. Кто-нибудь знает причину этого? Я пробовал использовать различные форматы видео, которые должны работать на iPhone, каждый раз один и тот же результат.

Проигрыватель фильмов реагирует на такие действия, как показ и скрытие элементов управления.

Мой код:

-(void) playVideoNamed:(NSString *)videoName
{
    // I get the path like this so the user can enter extension in the filename
    NSString *path = [NSString stringWithFormat:@"%@/%@", 
                      [[NSBundle mainBundle] resourcePath], videoName];
    NSLog(@"Path of video file: %@", path);

    RootViewController *rootController = [(DerpAppDelegate *)[[UIApplication sharedApplication] delegate] viewController];

    NSURL *url = [NSURL URLWithString:path];

    MPMoviePlayerViewController *vc = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
    vc.moviePlayer.movieSourceType = MPMovieSourceTypeFile;

    [rootController presentMoviePlayerViewControllerAnimated:vc];
    [vc.moviePlayer prepareToPlay]; // Not sure about this... I've copied this code from various others that claims this works
    [vc.moviePlayer play];
} 

Ответы [ 2 ]

20 голосов
/ 20 мая 2011

Обнаружен вопрос:

NSURL *url = [NSURL URLWithString:path];

Должен быть заменен на:

NSURL *url = [NSURL fileURLWithPath:path];

Трудно определить это ...

0 голосов
/ 30 мая 2015

Я выполнял строки кода в другом потоке, сначала отправив в основной поток исправил это:

dispatch_async(dispatch_get_main_queue(), ^(void){
        MPMoviePlayerViewController* theMovie = [[MPMoviePlayerViewController alloc] initWithContentURL: videoURL];
        [self presentMoviePlayerViewControllerAnimated:theMovie];

});
...