#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, я не могу его использовать — приложение будет отклонено. Кроме того, похоже, что это сработает, если я специально перейду к главе — это не то, что мне нужно. Фильм будет воспроизводиться от начала до конца без каких-либо переходов, но когда я добираюсь до маркера главы, мне нужно показать наложение, поэтому каким-то образом мне нужно инициировать событие, когда воспроизведение достигает маркера.