Как инициировать событие для маркеров глав при воспроизведении фильма quicktime?

#iphone #ipad #mpmovieplayercontroller #quicktime #movie

#iPhone #iPad #mpmovieplayercontroller #quicktime #Фильм

Вопрос:

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

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

Мы высоко ценим любую помощь! 🙂

Комментарии:

1. Итак .. каким было решение, которое вы получили Milk78??

2. Я не нашел решения, и изменения в проекте означали, что я не занимался дальнейшим решением. Но я все еще очень заинтересован в поиске хорошего решения для этого 🙂

Ответ №1:

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

 #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.

Комментарии:

1. Для меня это действительно похоже на частный API, по крайней мере, я не нашел этого уведомления в документах (и вам не нужно было бы указывать #define, если бы оно было «официальным»).

2. Если это частный API, я не могу его использовать — приложение будет отклонено. Кроме того, похоже, что это сработает, если я специально перейду к главе — это не то, что мне нужно. Фильм будет воспроизводиться от начала до конца без каких-либо переходов, но когда я добираюсь до маркера главы, мне нужно показать наложение, поэтому каким-то образом мне нужно инициировать событие, когда воспроизведение достигает маркера.