2013-10-02 4 views
0

Я пытаюсь воспроизвести видео сразу после того, как экран запуска показывает, однако все, что я вижу, есть черный экран со строкой состояния, показывающей вверху. На данный момент это все приложение делает так, что ничего не происходит, насколько я знаю, это должно остановить воспроизведение видео.MPMoviePlayerController показывает только черный экран

Видео воспроизводится на iPad без каких-либо проблем, похоже, находится в правильном формате и так далее. Я ориентируюсь на iOS 7, и я попытался использовать другое видео, а вместо этого попытался использовать MPMoviePlayerViewController. Все заканчиваются тем же результатом.

Вот код, который я использую.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSURL *movieURL = [[NSBundle mainBundle] URLForResource:@"IntroMovie" withExtension:@"mov"]; 

    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL]; 

    [moviePlayer prepareToPlay]; 

    [self.window addSubview:moviePlayer.view]; 

    [moviePlayer play]; 

    return YES; 
} 
+0

Вы уверен, что нет опечатки в имени ресурса (помните, это чувствительный к регистру)? Можете ли вы NSLog movieURL? –

+0

И все это у вас в AppDelegate? Где создается окно? –

+0

MovieURL выглядит корректно, без опечаток в названии ресурса. Кроме того, у меня было окно, которое было создано, но было удалено, так как упоминалось, что он не нужен для этого контроллера. –

ответ

1

Вам нужно создать объект MPMoviePlayerViewController, а не прежний. Метод playMovie должен вызываться после makeKeyAndVisible.If он все еще не делает работа попробуйте добавить точки останова и проверить, если URL для данного видео является правильным или нет, и если он был добавлен в Copy Bundle resources.Hope это помогает

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    // Override point for customization after application launch. 
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 
     [self playMovie]; 
    return YES; 
} 


-(void)playMovie 
{ 
    NSURL *movieURL; 
    NSBundle *bundle = [NSBundle mainBundle]; 
    if(bundle != nil) 
    { 
     NSString *moviePath = [bundle pathForResource:@"intro" ofType:@"m4v"]; 
     if (moviePath) 
     { 
      movieURL = [NSURL fileURLWithPath:moviePath]; 

     } 
    } 


    moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL]; 
    moviePlayer.moviePlayer.controlStyle = MPMovieControlStyleNone; 
    moviePlayer.moviePlayer.scalingMode = MPMovieScalingModeFill; 
    [self.viewController presentViewController:moviePlayer animated:NO completion:^{ 

    }]; 
    [moviePlayer.moviePlayer play]; 




} 
+0

Это сработало отлично, я не понимал, что они были разными. –

+0

Не думаете ли вы, как остановить переключение между переходом между загрузкой png и воспроизведением видео? –

0

Предполагая, что у вас нет опечаток и настроек правильно проекта единственной проблемы у вас может быть находится внутри кодека, который был использован для создания файла «мы». Попробуйте с некоторыми другими файлами mov или попробуйте поместить свой файл mov в телефонную библиотеку и попробуйте сыграть его там

+0

Я пробовал еще один фильм, который я знаю, работает на iPad, и это тоже не играло, поэтому я не был уверен, что это будет проблемой. Файл, который я пытался, был файлом m4v. –

+0

БОЛЬШОЙ СОВЕТ ... Расширения могут быть проблемой и фактически вызывать сбой. Декабрь 2013 года. Это очень толстая информация о расширениях имен файлов (файлы образуют сеть). В моем приложении .MOV работает, .mov сильно ударяет iPhone. Bizarre. Также симулятор просто не работает, он абсолютно бесполезен и просто падает. Наконец, на основе подхода MPMoviePlayerViewController MPMoviePlayerController бесполезен и сломан. – Fattie

+0

спасибо Grzegorz, сохранил день – Fattie

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