Как вызвать событие для маркеров глав при воспроизведении быстрого фильма? - PullRequest
1 голос
/ 26 апреля 2011

Я пытаюсь создать приложение для iPad, в котором мне нужно воспроизвести фильм быстрого времени, который содержит некоторые маркеры глав. Когда каждый маркер достигнут, мне нужно небольшое наложение, которое будет показано в верхней части видео. Есть ли способ вызвать событие / функцию при каждом достижении маркера? И если да, то как?

Меня не интересует необходимость разработки целого видеоплеера с обработкой кодеков с нуля, поскольку это выходит за рамки моей зоны комфорта - поэтому я надеюсь, что это возможно при использовании MPMoviePlayer или чего-то подобного.

Любая помощь с благодарностью! :)

1 Ответ

0 голосов
/ 26 апреля 2011

Зарегистрируйтесь, чтобы получить следующее уведомление:

#define MPAVControllerTimeDidJumpNotification @"MPAVControllerTimeDidJumpNotification"

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleTimeChanged:) name:MPAVControllerTimeDidJumpNotification object:nil];

-(void)handleTimeChanged:(NSNotification *)notification
{
    static int i = 0;
    NSDictionary * userInfo = notification.userInfo;
    int lastPositionInSeconds = [[userInfo valueForKey:@"MPAVControllerTimeParameter"] intValue];
    if(lastPositionInSeconds > markers[i])
    {
         i++;
         [self showOverlay: i];
    }
}

Также зарегистрируйтесь для получения уведомления MPMoviePlayerPlaybackDidFinishNotification, чтобы прекратить прослушивание уведомления MPAVControllerTimeDidJumpNotification.

...