Звук MPMoviePlayerController только после того, как приложение стало активным

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

Эта ошибка присутствует только на устройстве (iOS 5.0, возможно, более ранние версии). На симуляторе все в порядке.

Есть идеи?

Код, который создает экземпляр MPMoviePlayerController и добавляет его для просмотра:

 if (!self.moviePlayerController) { MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:movieURL]; if (player) { /* Save the movie object. */ [self setMoviePlayerController:player]; /* Register the current object as an observer for the movie notifications. */ [self installMovieNotificationObservers]; player.shouldAutoplay = YES; player.controlStyle = MPMovieControlStyleNone; player.scalingMode = MPMovieScalingModeAspectFit; player.useApplicationAudioSession = NO; [player setContentURL:movieURL]; [player prepareToPlay]; if ([player respondsToSelector:@selector(setAllowsAirPlay:)]) { [player setAllowsAirPlay:YES]; } [player setMovieSourceType:sourceType]; [[player view] setFrame:[self.view bounds]]; [self.view addSubview: [player view]]; [self.view sendSubviewToBack:[player view]]; [player release]; } } 

movieURL – это ссылка на mp4 этой формы: http: //host.domain/filename.mp4 возможно MPMoviePlayerController неправильно работает с типом источника mp4 через http?

Решение

В этом случае все хорошо:

 - (void)applicationWillResignActiveNotification:(NSNotification*)notification { if (self.moviePlayerController.playbackState == MPMoviePlaybackStatePlaying) { self.playerState = PlayerStatePlaying; } else if (self.moviePlayerController.playbackState == MPMoviePlaybackStatePaused) { self.playerState = PlayerStatePaused; self.playbackTimeBeforeBackground = self.moviePlayerController.currentPlaybackTime; [self.moviePlayerController pause]; } - (void)applicationDidBecomeActiveNotification:(NSNotification*)notification { self.moviePlayerController.currentPlaybackTime = -1; if (self.playerState & PlayerStatePlaying) { [self performSelector:@selector(startPlayerAfterDelayPause:) withObject:nil afterDelay:0.2]; } else if (self.playerState & PlayerStatePaused) { [self performSelector:@selector(startPlayerAfterDelayPause:) withObject:[NSNumber numberWithBool:YES] afterDelay:0.2]; } } - (void)startPlayerAfterDelayPause:(NSNumber *)isPause{ self.moviePlayerController.currentPlaybackTime = self.playbackTimeBeforeBackground; if ([isPause boolValue] == YES) { [self.moviePlayerController pause]; } else { [self.moviePlayerController play]; } } 

вы пробуйте этот код:

 NSString *path=[bundle pathForResource:@"ImageHomeAnimation" ofType:@"mp4"]; MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path]]; self.player1= mp;//[[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path]]; [mp release]; self.player1.view.frame = CGRectMake(0, -20, 320,480); self.player1.view.backgroundColor=[UIColor clearColor]; [self.view addSubview:self.player1.view]; self.player1.fullscreen=YES; [self.player1 setRepeatMode:MPMovieRepeatModeNone]; self.player1.controlStyle=MPMovieControlStyleNone; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinishedCallback) name:MPMoviePlayerPlaybackDidFinishNotification object:self.player1]; [self.player1 prepareToPlay]; [self.player1 play]; -(void)movieFinishedCallback { [self.player1.view removeFromSuperview]; } 
  • Вспышка MpMovieplayer во время напоминания о напоминании
  • Как получить «искать» время в MPMoviePlayerController?
  • Фильм воспроизводится с некоторой задержкой после вызова воспроизведения на MPMoviePlayerController
  • MPMoviePlayerViewController отображает неправильные элементы управления с прямой трансляцией на iOS 8
  • Отключить элементы управления в MPMoviePlayerController
  • Установите новый contentURL для MPMoviePlayerController
  • Воспроизведение видео MPMediaItem закрывается
  • Проблема с захватом снимка экрана видео
  • iOS Swift Mute-unmute audio, как видеозапись автозапуска facebook
  • Как выполнить измерение уровня звука с помощью MPMoviePlayerController
  • как скрыть ползунок проигрывателя в MPMoviePlayerViewController
  • Interesting Posts

    Автоматическая термоусадочная этикетка с несколькими линиями Swift

    Segues не работает программно

    в чем разница heightForRowAt против оценкиHeightForRowAt?

    как передать UI ImageView с одного контроллера представления на другой? быстрый 3

    Любой способ проверить версию opencv в проекте iOS?

    Прохождение блоков вокруг быстро

    iOS 6.0 – (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation не вызывает

    Получите информацию о частоте сердечных сокращений от часов Apple, чтобы спарить iPhone

    Как принудительно освободить UICollectionViewCell (или UITableViewCell) после освобождения коллекции CollectionView (или TableView)

    Неисправность привязки CCSprite к ccTime dt

    Бинарный оператор Swift sortinplace> не может применяться к двум операндам nsnumber

    Выбор коллекции Выбор ячейки с помощью быстрой

    Как решить проблему утечки памяти _ContiguousArrayStorage <UIButton> в Swift?

    Есть ли способ узнать, работает ли мой код в Apple Watch Simulator или на реальных часах

    Могу ли я освободить приложение с базовым SDK iOS 7.0 и с Today Extension?

    Давайте будем гением компьютера.