Вывод титров из xml
Вывод титров из xml
Кому-нибудь приходилось сталкиваться на Андроиде с чтением текста из xml и выводом его на экран поверх видео в виде титров?
Мне нужно привязать титры в xml к временным меткам видео.
Флеш умеет парсить xml-файлы и выводить их на swf, но что-то со Флешем на моб. платформах последнее время как-то грустно.
Как это реализовать, есть идеи?
Мне нужно привязать титры в xml к временным меткам видео.
Флеш умеет парсить xml-файлы и выводить их на swf, но что-то со Флешем на моб. платформах последнее время как-то грустно.
Как это реализовать, есть идеи?
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Вывод титров из xml
Пример XML с титрами в студию.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Вывод титров из xml
Вот кусок:
Код: Выделить всё
-<captionObject>
<Time>11.200000</Time>
-<Caption>
<![CDATA[Hello. Welcome to Eclipse and Java for total <BR>beginners. I'm your instructor.<BR>]]>
</Caption>
</captionObject>
-<captionObject>
<Time>18.100000</Time>
-<Caption>
<![CDATA[This tutorial will help you get started writing Java <BR>programs using Eclipse.]]>
</Caption>
</captionObject>Re: Вывод титров из xml
Т.е вопрос не в прорисовке текста поверх видео, а именно в парсинге и соответствии времени вывода?
Re: Вывод титров из xml
На самом деле оба вопроса актуальны, но на крайний случай можно титры вывести в область под видео. Минус такого способа, что полезная площадь уменьшится.damager82 писал(а):Т.е вопрос не в прорисовке текста поверх видео, а именно в парсинге и соответствии времени вывода?
А на вопрос "в парсинге и соответствии времени вывода" есть ответ?
Re: Вывод титров из xml
Текст поверх видео - это просто TextView и видео-компонент в каком-нить FrameLayout. Я, правда, не пробовал, но думаю, что получится.=bor= писал(а):На самом деле оба вопроса актуальны, но на крайний случай можно титры вывести в область под видео. Минус такого способа, что полезная площадь уменьшится.damager82 писал(а):Т.е вопрос не в прорисовке текста поверх видео, а именно в парсинге и соответствии времени вывода?
А на вопрос "в парсинге и соответствии времени вывода" есть ответ?
А алгоритм ... Первое что приходит в голову: распарсить титры можно в свой какой-то набор, и отсортить по времени. Потом каждые 100 мсек проверять первый элемент. Если его время стало меньше, чем время воспроизведения, то показывать титр и удалять элемент.
Re: Вывод титров из xml
Спасибо, попробую.damager82 писал(а):Текст поверх видео - это просто TextView и видео-компонент в каком-нить FrameLayout. Я, правда, не пробовал, но думаю, что получится.
Хороший вариант!damager82 писал(а):А алгоритм ... Первое что приходит в голову: распарсить титры можно в свой какой-то набор, и отсортить по времени. Потом каждые 100 мсек проверять первый элемент. Если его время стало меньше, чем время воспроизведения, то показывать титр и удалять элемент.
А ещё вопрос: средствами Андроида можно читать хмл или специально под это заточенного средства нет, и придётся парсить, как любой другой текстовый файл?
Re: Вывод титров из xml
Не оч понял вопрос. Что вы понимаете под "читать xml"?=bor= писал(а):А ещё вопрос: средствами Андроида можно читать хмл или специально под это заточенного средства нет, и придётся парсить, как любой другой текстовый файл?
Его, конечно, можно прочесть как обычный файл в набор букв или байтов. Но это никак не поможет получить от него структурированные данные. Для этого уже нужен парсер.
Re: Вывод титров из xml
Не, по титрам плохой алгоритм. Если надо будет сделать перемотку, то все слетит.
Можно так:
После показа титра надо не удалять элемент, а запоминать его номер. И каждые 100 мсек проверять уже следующий за ним, а не первый.
А после перемотки и прочих событий взять текущее время воспроизведения, пробежаться по набору и запомнить последний элемент, время которого меньше текущего времени.
Можно так:
После показа титра надо не удалять элемент, а запоминать его номер. И каждые 100 мсек проверять уже следующий за ним, а не первый.
А после перемотки и прочих событий взять текущее время воспроизведения, пробежаться по набору и запомнить последний элемент, время которого меньше текущего времени.
Re: Вывод титров из xml
И то верно. А что, если юзер захочет в какой-то момент включить ускоренное воспроизведение? Привязка ко времени нарушится?damager82 писал(а):Не, по титрам плохой алгоритм. Если надо будет сделать перемотку, то все слетит.
Можно так:
После показа титра надо не удалять элемент, а запоминать его номер. И каждые 100 мсек проверять уже следующий за ним, а не первый.
А после перемотки и прочих событий взять текущее время воспроизведения, пробежаться по набору и запомнить последний элемент, время которого меньше текущего времени.
И ещё. В хмл титры не пронумерованы, поэтому надо сначала номер присвоить. Потом только куда-то сгрузить - индекс и текст титра.
А может, лучше индексирование произвести заранее - скормить индексатору хмл, на выходе получить массив с номером, временем и текстом, без лишнего мусора, и потом уже в процессе воспроизведения сравнивать с текущим временем и выводить титр с соответствующим условию номером.

