Воспроизведение MPMoviePlayerController синхронно с AVAudioPlayer - PullRequest
4 голосов
/ 04 февраля 2012

Я пытаюсь добавить фильм во вступление к игре.В фильме нет звука / музыки.У меня, однако, есть фоновая музыка.Музыка несколько специфична в том смысле, что вступление в музыку длится до тех пор, пока фильм, а затем темп включается немного быстрее.

Проблема, с которой я сталкиваюсь на некоторых устройствах, таких как iPod 4G,играть музыку слишком рано, что затем нарушает последовательность фильмов.Этого не происходит в моем iPhone 4S.

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

Вот что я получил до сих пор:

-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"SplashVideo" ofType:@"mp4"]]];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:player];

    [[player view] setFrame:CGRectMake(0, 0, 480, 320)];
    [player setControlStyle:MPMovieControlStyleNone];
    [[self view] addSubview:[player view]];

    // play movie
    [player play];

    //musicPlayer is defined in the header
    [self setMusicPlayer:[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"SplashMusic" ofType:@"m4a"]] error:nil]];
    [[self musicPlayer] setNumberOfLoops:loop];
    [[self musicPlayer] prepareToPlay];
    [[self musicPlayer] setDelegate:self];
}

- (void)moviePlayerPlaybackDidFinish:(NSNotification*) aNotification {
    DLog(@"**********");

    MPMoviePlayerController *player = [aNotification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:player];

    [player stop];
    [[player view] removeFromSuperview];

    [player autorelease];
}

В итоге , на iPhone 4S он играет без нареканий, но на iPod 4G,музыка начинается примерно за 2 секунды до того, как начинается фильм, и в итоге вступление сбрасывается.Что я могу сделать, чтобы убедиться, что фильм и музыка воспроизводятся синхронно?

Вещи, которые я не могу сделать, если не уверен в этом:

  1. Я не могу поместить музыку в видео, так какмузыка предназначена для просмотра нескольких просмотров.
  2. Я не могу создать фильм в анимации UIImageView.

1 Ответ

2 голосов
/ 21 апреля 2012

Вот что я сделал в случае, если кто-то столкнется с этим.

Я создал уведомление для: MPMoviePlayerLoadStateDidChangeNotification

Когда вызывался селектор, возвращая уведомление MPMovieLoadStatePlaythroughOK Я проиграл фильми звуковая дорожка.

Надеюсь, это поможет.

...