Можно ли воспроизводить видео на iPhone и синхронизировать с ним субтитры?

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

Если я нарисовал это, это что-то вроде этого, movie with subtitle

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

Кто-нибудь использовал решение, которое могло это сделать?

Ответ 1

Недавно я сделал что-то, что синхронизирует графику со временем в звуковой дорожке. То, как я это делал, это использовать свойство currentPlaybackTime интерфейса MPMediaPlayback (которым также должен соответствовать контроллер MoviePlayer). Это возвращает секунды, прошедшие на носителе, в double (typedef'ed as NSTimeInterval). Фактическая синхронизация в моем приложении не была сделана в уведомлениях, так как я не мог найти никакого напоминания о "тике", но вместо этого я создал таймер, вызвав функцию, запрошенную currentPlaybackTime, и обновил графику на основе этого.

Что касается вашей реализации, я бы предположил, что у вас есть какая-то система для связывания текста меток (субтитров) с определенным временем. Затем вы можете сравнить временной диапазон текста с временем, возвращаемым currentPlaybackTime, чтобы найти правильный текст для отображения.