Нашли альтернативу флеш анимации
Модераторы: ElenVR, Людмила, PR
-
- Сообщения: 7
- Зарегистрирован: 06 июл 2011 17:07
-
- Сообщения: 2311
- Зарегистрирован: 05 мар 2003 19:21
Для выставки IBC 2013 был сделан новый видеоролик с демонстрацией возможностей QML в титрах:
http://youtu.be/1bYPd8bcHa4
Смотреть лучше в качестве HD 720p (выбирается справа внизу).
http://youtu.be/1bYPd8bcHa4
Смотреть лучше в качестве HD 720p (выбирается справа внизу).
-
- Сообщения: 62
- Зарегистрирован: 07 окт 2010 21:51
Давно как то тут был архивчик с демо QML новостей с листанием фото и подписи. Решили сделать себе такое. сделали его не на полный экран а на 4-ю часть. В дизайнере все работает. крутится все нормально. На машине с форвард Лайт в расписании вставили. Тоже работает. но как то дергается немного при листании. Когда же ночью для проверки пустили на эфирном.. Очень расстроился. Качество очень и очень низкое, а листает очень грязно, такое ощущение что перепутаны поля. хотя такой настройки нет в объекте. Может я не так что то сделал. Есть вообще какие-то правила именно по Форварду с QML? Идея нам понравилась.
Решили пока отказаться от этого но сама идея интересная и нам не помешала бы. Можно конечно через РеклБлок сделать но вот тогда без подписи получится. Остановились пока на РеклБлок, будем картинки подписывать.
Решили пока отказаться от этого но сама идея интересная и нам не помешала бы. Можно конечно через РеклБлок сделать но вот тогда без подписи получится. Остановились пока на РеклБлок, будем картинки подписывать.
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
А вы нам свой проектик зашлите, пожалуйста. Мы посмотрим.
forward@softlab.tv
forward@sl.iae.nsk.su
forward@softlab-nsk.com
forward@softlab.tv
forward@sl.iae.nsk.su
forward@softlab-nsk.com
-
- Сообщения: 283
- Зарегистрирован: 17 янв 2007 13:02
- Откуда: Хабаровск
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 283
- Зарегистрирован: 17 янв 2007 13:02
- Откуда: Хабаровск
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Работа титровального элемента QML никак не связана с получением информации о файлах, которые проигрываются в OnAir. Т.е. в самом титровальном элементе такая информация недоступна.
Всё это доступно в коде титровального объекта со скриптом.
Например, применительно к упомянутому скрипту TSF_Announce.SLTitleTmpl, в коде есть две процедуры:
override public function NeedBackGroundNotify() : boolean { return true; }
Эта процедура сообщает, что в скрипт нужно передавать информацию о файлах из расписания OnAir
override public function OnBackGroundNotify(info : String) : boolean
{.....................................................................}
Эта процедура - собственно передаёт информацию о файле, который будет проигрываться, в переменной info.
Т.е. общая схема такая. Создаётся титровальный объект со скриптом, который является оболочкой над вашим QML-элементом. Эта оболочка с одной стороны взаимодействует с OnAir (получает информацию от него, передаёт информацию в него, отрабатывает команды загрузить задание/старт/стоп, ...). С другой стороны она управляет работой QML-элемента.
Всё это доступно в коде титровального объекта со скриптом.
Например, применительно к упомянутому скрипту TSF_Announce.SLTitleTmpl, в коде есть две процедуры:
override public function NeedBackGroundNotify() : boolean { return true; }
Эта процедура сообщает, что в скрипт нужно передавать информацию о файлах из расписания OnAir
override public function OnBackGroundNotify(info : String) : boolean
{.....................................................................}
Эта процедура - собственно передаёт информацию о файле, который будет проигрываться, в переменной info.
Т.е. общая схема такая. Создаётся титровальный объект со скриптом, который является оболочкой над вашим QML-элементом. Эта оболочка с одной стороны взаимодействует с OnAir (получает информацию от него, передаёт информацию в него, отрабатывает команды загрузить задание/старт/стоп, ...). С другой стороны она управляет работой QML-элемента.
-
- Сообщения: 283
- Зарегистрирован: 17 янв 2007 13:02
- Откуда: Хабаровск
Мой вопрос был основан на этом факте на четвёртой странице данной темы:
Мы видели этот SLRunTime и в вашем примере проекта на QML. Цель стоит не задействовать встроенную функцию работы со скриптами, а перенести динамически генерируемый контент в QML и рулить выдачей титров (голосовалки, анонсы и т.д) через свой веб-интерфейс и явовские скрипты, встроенные в QML.komar писал(а): 2. Так же в qml скрипте можно видеть еще одни объект SLRunTime, это объект для связи "Forward" титровального движка с движком QML, он отражает все то, что твориться в "Forward" движке, к примеру номер кадра в плате, и многое другое. Этот объект мы попытаемся встроит в qmlviewer, и при работе в QT Creator-e вам придется пользоваться уже наш а не стандартным qmlviewer-ом, что не очень удобно на наш взгляд.
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Объекты SLRunTime для вашей задачи вряд ли подойдут.
Если вы ведёте речь про вот эту строку из примера:
var str = readLine(SLRunTime.taskName);
То, здесь узнаётся имя файла-задания QML-элемента.
Но с помощью SLRunTime вы никак не получите информацию о файле, который будет проигрываться следующим из расписания программы OnAir.
Например, сейчас пишем связку скрипт+QML для показа чата ВКонтакте. Именно по такой схеме.
Если вы ведёте речь про вот эту строку из примера:
var str = readLine(SLRunTime.taskName);
То, здесь узнаётся имя файла-задания QML-элемента.
Но с помощью SLRunTime вы никак не получите информацию о файле, который будет проигрываться следующим из расписания программы OnAir.
А первое никак не мешает второму. Отрисовка - средствами QML, кое-какие дела (не связанные с отрисовкой) - средствами скрипта.Цель стоит не задействовать встроенную функцию работы со скриптами, а перенести динамически генерируемый контент в QML и рулить выдачей титров (голосовалки, анонсы и т.д) через свой веб-интерфейс и явовские скрипты, встроенные в QML.
Например, сейчас пишем связку скрипт+QML для показа чата ВКонтакте. Именно по такой схеме.
-
- Сообщения: 283
- Зарегистрирован: 17 янв 2007 13:02
- Откуда: Хабаровск
Я всё время это и спрашиваю, КАК??? Документации за несколько лет так и нет, списка поддерживаемых конструкций QML нет, недокументированные возможности не известны. А титровальный элемент QML есть. При этом у этого QML огромные возможности по отрисовке динамических титров и совершенно непонятно, почему такой мощный инструмент абсолютно не востребован.Даниленко Сергей писал(а): Отрисовка - средствами QML, кое-какие дела (не связанные с отрисовкой) - средствами скрипта.
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Я нет понимаю то, что не понимаете вы.
Титровальный элемент QML (на уровне описания всех наших титровальных элементов) описан в документации. То, что нами добавлено (рендеринг изображение на "выход платы") - вам не требуется. Что нужно от нас? Повторить описание всех классов QML в нашей документации? Мы это делать точно не будем.
Что нужно конкретно?
Титровальный элемент QML (на уровне описания всех наших титровальных элементов) описан в документации. То, что нами добавлено (рендеринг изображение на "выход платы") - вам не требуется. Что нужно от нас? Повторить описание всех классов QML в нашей документации? Мы это делать точно не будем.
Что нужно конкретно?
-
- Сообщения: 2311
- Зарегистрирован: 05 мар 2003 19:21
-
- Сообщения: 493
- Зарегистрирован: 04 янв 2004 12:45
- Откуда: СофтЛаб-НСК
Попробую ответить конструктивно.fedor писал(а):Документации за несколько лет так и нет, списка поддерживаемых конструкций QML нет, недокументированные возможности не известны.
1. Сначала про текущий титровальный элемент QML.
Титровальный элемент QML собран (скомпилирован) из исходников QML версии 4.7, в которую не включены компоненты вебкита, поскольку мы считали, что на эфирном сервере доступа к интернет нет по попределению. Все библиотеки, бинарно совместимые с QML 4.7 должны нормально работать с текущим титровальным элементом QML. Можно попытаться положить нужную Вам библиотеку в папку "C:\Program Files\ForwardT Software\FDTitle" (то есть в папку с модулем QTMovieExt.exe) и проверить, что классы из этой библиотеки успешно импортируются. Чтобы узнать о проблемах достаточно написать простенький QML-код, в котором импортировать библиотеку и/или создать нужный Вам объект, затем запустить DbgView и выполнить код в FDTitleDesigner. В случае проблемы появится печать о невозможности импортировать такую-то библиотеку.
Из недокументированных в описании языка QML функций есть один объект для получения некоторой информации о состоянии титровального ядра, в которое рисует титровальный элемент. Можно просто считать, что методы отрисовки вызываются 50 раз в секунду и все. Важно понимать, что текущее системное время и время в плате идут совсем не синхронно и не пытаться рисовать анимацию по текущему системному времени. В остальном все обычно.
2. Теперь про новый титровальный элемент QML.
Сейчас мы создаем новый титровальный элемент QML на базе QML версии 5.4. Как утверждают разработчики QML теперь будет обеспечиваться совместимость библиотек со всеми будущими версиями ядра QML. То есть мы планируем (мы верим), что мы один раз напишем нашу библиотеку к стандартному ядру 5.4 для работы на нашем титровальном ядре и в дальнейшем можно будет просто подменять ядро (то есть все dll-ки, включая нужные клиенту библиотеки) в папке "...\FDTitle\QML" и все будет работать! В этом случае вообще не будет никаких ограничений на используемые библиотеки.
-
- Сообщения: 283
- Зарегистрирован: 17 янв 2007 13:02
- Откуда: Хабаровск
Да никто никого ни в чём не винит.Может, не мы виноваты в том, что не все умеют программировать на QML?
И дело вовсе не в QML! С ним то как раз всё более мнее понятно. А если и не понятно - то есть куча информации в сети. Сиди, вояй. Выбор QML как одного из векторов развития - очень правильный выбор. Возможностей у него достаточно.
НО для полноценного встраивания QML-титров в эфирный плейлист, скрипт QML должен иметь представление о текущем положении и собственном состоянии в рамках плэйлиста, уметь ловить момент, когда началось отображение титра и момент, когда оно закончилось и т.п.. Понятно, что никакие возможности QML и никакие "сторонние модули dll" тут не помогут. Тут необходим некоторый объект QML (аналогичный SLRunTime), который бы генерировал соответствующие события рамках QML-скриптов (это было бы замечательно, ведь тот же JavaScript, который для QML вполне родной, весь насквозь асинхронный) или хотябы через свойства этого объекта можно было бы собрать такую информацию, переодически проверяя их состояние.
Ну и сам объект SLRunTime давно пора задокументировать хотя бы очень кратенько.