Вывод титров из xml

Ответить
=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Вывод титров из xml

Сообщение =bor= » 03 июн 2013, 15:39

Кому-нибудь приходилось сталкиваться на Андроиде с чтением текста из xml и выводом его на экран поверх видео в виде титров?
Мне нужно привязать титры в xml к временным меткам видео.
Флеш умеет парсить xml-файлы и выводить их на swf, но что-то со Флешем на моб. платформах последнее время как-то грустно.
Как это реализовать, есть идеи?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Вывод титров из xml

Сообщение KamiSempai » 03 июн 2013, 15:49

Пример XML с титрами в студию.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Вывод титров из xml

Сообщение =bor= » 04 июн 2013, 11:43

Вот кусок:

Код: Выделить всё

-<captionObject>
<Time>11.200000</Time>
-<Caption>
<![CDATA[Hello. Welcome to Eclipse and Java for total <BR>beginners. I&apos;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>

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Вывод титров из xml

Сообщение damager82 » 04 июн 2013, 12:14

Т.е вопрос не в прорисовке текста поверх видео, а именно в парсинге и соответствии времени вывода?
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Вывод титров из xml

Сообщение =bor= » 04 июн 2013, 13:10

damager82 писал(а):Т.е вопрос не в прорисовке текста поверх видео, а именно в парсинге и соответствии времени вывода?
На самом деле оба вопроса актуальны, но на крайний случай можно титры вывести в область под видео. Минус такого способа, что полезная площадь уменьшится.
А на вопрос "в парсинге и соответствии времени вывода" есть ответ?

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Вывод титров из xml

Сообщение damager82 » 07 июн 2013, 12:11

=bor= писал(а):
damager82 писал(а):Т.е вопрос не в прорисовке текста поверх видео, а именно в парсинге и соответствии времени вывода?
На самом деле оба вопроса актуальны, но на крайний случай можно титры вывести в область под видео. Минус такого способа, что полезная площадь уменьшится.
А на вопрос "в парсинге и соответствии времени вывода" есть ответ?
Текст поверх видео - это просто TextView и видео-компонент в каком-нить FrameLayout. Я, правда, не пробовал, но думаю, что получится.

А алгоритм ... Первое что приходит в голову: распарсить титры можно в свой какой-то набор, и отсортить по времени. Потом каждые 100 мсек проверять первый элемент. Если его время стало меньше, чем время воспроизведения, то показывать титр и удалять элемент.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Вывод титров из xml

Сообщение =bor= » 07 июн 2013, 13:00

damager82 писал(а):Текст поверх видео - это просто TextView и видео-компонент в каком-нить FrameLayout. Я, правда, не пробовал, но думаю, что получится.
Спасибо, попробую.
damager82 писал(а):А алгоритм ... Первое что приходит в голову: распарсить титры можно в свой какой-то набор, и отсортить по времени. Потом каждые 100 мсек проверять первый элемент. Если его время стало меньше, чем время воспроизведения, то показывать титр и удалять элемент.
Хороший вариант!
А ещё вопрос: средствами Андроида можно читать хмл или специально под это заточенного средства нет, и придётся парсить, как любой другой текстовый файл?

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Вывод титров из xml

Сообщение damager82 » 07 июн 2013, 13:31

=bor= писал(а):А ещё вопрос: средствами Андроида можно читать хмл или специально под это заточенного средства нет, и придётся парсить, как любой другой текстовый файл?
Не оч понял вопрос. Что вы понимаете под "читать xml"?
Его, конечно, можно прочесть как обычный файл в набор букв или байтов. Но это никак не поможет получить от него структурированные данные. Для этого уже нужен парсер.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Вывод титров из xml

Сообщение damager82 » 07 июн 2013, 13:41

Не, по титрам плохой алгоритм. Если надо будет сделать перемотку, то все слетит.

Можно так:
После показа титра надо не удалять элемент, а запоминать его номер. И каждые 100 мсек проверять уже следующий за ним, а не первый.
А после перемотки и прочих событий взять текущее время воспроизведения, пробежаться по набору и запомнить последний элемент, время которого меньше текущего времени.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Вывод титров из xml

Сообщение =bor= » 07 июн 2013, 20:38

damager82 писал(а):Не, по титрам плохой алгоритм. Если надо будет сделать перемотку, то все слетит.
Можно так:
После показа титра надо не удалять элемент, а запоминать его номер. И каждые 100 мсек проверять уже следующий за ним, а не первый.
А после перемотки и прочих событий взять текущее время воспроизведения, пробежаться по набору и запомнить последний элемент, время которого меньше текущего времени.
И то верно. А что, если юзер захочет в какой-то момент включить ускоренное воспроизведение? Привязка ко времени нарушится?
И ещё. В хмл титры не пронумерованы, поэтому надо сначала номер присвоить. Потом только куда-то сгрузить - индекс и текст титра.
А может, лучше индексирование произвести заранее - скормить индексатору хмл, на выходе получить массив с номером, временем и текстом, без лишнего мусора, и потом уже в процессе воспроизведения сравнивать с текущим временем и выводить титр с соответствующим условию номером.

Ответить