Вам нужен весь плейлист, а дальше будете его сами анализировать? Или Вам нужна какая-то информация, которая решит только Вашу конкретную задачу? Если второе, то что именно нужно? "Дающее полное представление о плейлисте" - слишком расплывчато, и понять можно по-разному. Точнее, пока вообще непонятно.необходима информация дающая полное представление о проигрываемом плэйлисте
Нашли альтернативу флеш анимации
Модераторы: ElenVR, Людмила, PR
-
- Сообщения: 2311
- Зарегистрирован: 05 мар 2003 19:21
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
А если в плейлисте несколько тысяч позиций? А если он зацикленный, то что передавать в качестве плейлиста?необходима информация дающая полное представление о проигрываемом плэйлисте
Подход явно неправильный. Ну, допустим, вы получили полный плейлист за сегодняшний день. И что? Анализ будет что ли такой: если это клип с названием ааааааа.avi, а после него стоит клип с названием бббббббббббб.avi, тогда ..., а иначе..... Так что ли?
Завтра в плейлисте ролики поменяются и будете скрипт переписывать?
На наш взгляд нужен какой-то другой способ получения нужной информации из плейлиста. Например, заводим какое-то новое свойство для SLIni-файла. Пусть условно оно называется "не реклама". Нужным файлам прописываем это свойство. И вот тогда имеющим смысл будет, например, такой запрос: "OnAi, дай мне информацию о следующем (двух следующих, трёх следующих) ролике со свойством "не реклама" ".
Вот как-то так.
-
- Сообщения: 15
- Зарегистрирован: 25 окт 2013 13:34
У меня маленький опыт в программировании, скорей всего по этому у меня возник: у Вас есть пример SLQML_TVGuide, он зацикленный, а как сделать, чтобы данный привер не был зацикленный? Если изменить в TVGuideEngine.qml в компоненте Timer атрибут repeat: на false то в OnAir этот ролик проиграется 1 раз, вроде все правильно, но если в OnAir снова выключить и включить данный титрованный объект, то QML не проиграется, надо его полностью перезагружать задание. Вопрос как реализовать, чтобы QML в OnAir при включении каждый раз проигрывался сначала? Вопрос конечно банальный и глупый…
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 15
- Зарегистрирован: 25 окт 2013 13:34
Проект:
ftp://ftp.sl.iae.nsk.su/Public/ForwardT ... VGuide.zip
Проблема у меня решена и в прицепе вопрос можно мой закрывать.
Просто интересно а можно сделать проект в QML чтобы он отыграл задание которое указано в txt файле и титрованный проект перешел в состояние стоп.
На пример: Загрузили в OnAir мы QML (SLQML_TVGuide), нажали бы кнопку F9 (показать титрованый объект), QML проиграл бы задание, в нашем примере это 3 анонса и всё, OnAir выключил бы титрованный объект.
ftp://ftp.sl.iae.nsk.su/Public/ForwardT ... VGuide.zip
Проблема у меня решена и в прицепе вопрос можно мой закрывать.
Просто интересно а можно сделать проект в QML чтобы он отыграл задание которое указано в txt файле и титрованный проект перешел в состояние стоп.
На пример: Загрузили в OnAir мы QML (SLQML_TVGuide), нажали бы кнопку F9 (показать титрованый объект), QML проиграл бы задание, в нашем примере это 3 анонса и всё, OnAir выключил бы титрованный объект.
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 15
- Зарегистрирован: 25 окт 2013 13:34
В нашем примере, если в OnAir нажать один раз клавишу F9 появиться объект (на экране появиться анонс), если нажать еще раз F9 то QML исчезнет. Если мы еще раз выводим на экран QML (нажмем F9) то QML продолжить работать с того момента, на котором его до этого прервали. Вопрос можно сделать так чтобы QML с начала стал отрабатывать, а не продолжать?
-
- Сообщения: 283
- Зарегистрирован: 17 янв 2007 13:02
- Откуда: Хабаровск
Да, мы это уже поняли. И это очень хорошо, но и здесь, к сожалению есть некоторые трудности.Игорь Таранцев писал(а): Уже сейчас все комментарии, идущие в расписании подряд перед и после команды передаются как один комментарий. Соответственно, уже сейчас Вы получаете комментарий для следущей команды,
Постараюсь сразу объяснить подробно. Хотя это нигде не описано, но мы опытном путём выяснили что
означает, что "формируется строка из всех комментариев ПОСЛЕ проигрываемого элемента путём конкатенации через символ "," в направлении "сверху вниз", которая дополняется конкатенацией всех комментариев расположенных в расписании ДО в порядке "снизу вверх". Обе части (до и после) соединяются так же через символ ",""в описании писал(а): var notifyComment список комментариев вокруг команды в расписании.
В принципе, всё хорошо, за исключение небольшого ньюанса - каждый комментарий в потоке событий смены значений notifyComment появляется дважды - в качестве "комментария после", для первого ролика и в качестве "комментария до", для следующего ролика, и определить к какому из них относится данный комментарий несколько затруднительно. Я подумал, что ситуацию могло бы спасти простая смена символа-разделителя между половинками "до" и "после" - он не должен совпадать с разделителем (",") используемым для отделения комментариев.
То есть, всё что я здесь написал, означает лишь "исправьте пожалуйста разделитель между половинками notifyComment на, скажем, "|", оставив при этом в качестве разделителя комментариев запятую".
Пример.
Плэйлист:
Код: Выделить всё
// комент6
// комент5
// комент4
мульт.mpg
// комент1
// комент2
// комент3
мульт2.mpg
// -
SLRunTime.notifyComment во время проигрывания мульт.mpg:
Код: Выделить всё
"комент1,комент2,комент3,комент4,комент5,комент6"
Код: Выделить всё
"-,комент3,комент2,комент1"
SLRunTime.notifyComment во время проигрывания мульт.mpg:
Код: Выделить всё
"комент1,комент2,комент3|комент4,комент5,комент6"
Код: Выделить всё
"-|комент3,комент2,комент1"
Код: Выделить всё
"|комент3,комент2,комент1"
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Для Самотлор:
Щелкните по изображению для увеличения
Нажимаете F9 - QML начинает показ. Нажимаете F9 - QML прекращает показ. Перед следующим показом нужно перезагрузить задание и тогда при следующем нажатии на F9 показ начнётся с начала. Перезагрузить задание можно из меню под кнопкой F9Вопрос можно сделать так чтобы QML с начала стал отрабатывать, а не продолжать?

-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 15
- Зарегистрирован: 25 окт 2013 13:34
Это понятно, а нельзя сделать так чтобы компонент был не зацикленный. На пример как компонент Flaash4 в TitltDesinger можно было бы выбирать зациклить: Да/Нет.Даниленко Сергей писал(а):Для Самотлор:Нажимаете F9 - QML начинает показ. Нажимаете F9 - QML прекращает показ. Перед следующим показом нужно перезагрузить задание и тогда при следующем нажатии на F9 показ начнётся с начала. Перезагрузить задание можно из меню под кнопкой F9Вопрос можно сделать так чтобы QML с начала стал отрабатывать, а не продолжать?
Щелкните по изображению для увеличения
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Для fedor:
Как-то так:
var notifyCommentBefore
var notifyCommentAfter
Устроит?
У нас другое предложение. Мы предлагаем сделать две переменные для комментариев.То есть, всё что я здесь написал, означает лишь "исправьте пожалуйста разделитель между половинками notifyComment на, скажем, "|", оставив при этом в качестве разделителя комментариев запятую".
Как-то так:
var notifyCommentBefore
var notifyCommentAfter
Устроит?
-
- Сообщения: 283
- Зарегистрирован: 17 янв 2007 13:02
- Откуда: Хабаровск
Да, конечно, так даже лучше.Даниленко Сергей писал(а):Для fedor:
У нас другое предложение. Мы предлагаем сделать две переменные для комментариев.То есть, всё что я здесь написал, означает лишь "исправьте пожалуйста разделитель между половинками notifyComment на, скажем, "|", оставив при этом в качестве разделителя комментариев запятую".
Как-то так:
var notifyCommentBefore
var notifyCommentAfter
Устроит?
-
- Сообщения: 283
- Зарегистрирован: 17 янв 2007 13:02
- Откуда: Хабаровск
Ну а почему бы и нет? Можно конечно подписывать костылики, а можно сразу решить проблему кардинально. Вот кардинаьлно - это вывалить весь плейлист, а скрипт внутри титра уже сам решит что с ним делать.vd писал(а): Вам нужен весь плейлист, а дальше будете его сами анализировать?
Ну вот конкретная задача пока - это сделать анонс сюжета/ов. Но, как тут уже правильно гооврилось, сюжет этот может быть черте где ниже по плэйлисту. Мало того, если плэйлист зациклен, то титр проигрываемый на последнем элементе плэйлиста, должен иметь представление о его начале, а если стоИт команда перехода на другой плейлист - то и о содержимом этого другого плейлиста. То есть информации нужно очень много, фактически всё. Поэтому я и говорил "полном представлении".vd писал(а): Или Вам нужна какая-то информация, которая решит только Вашу конкретную задачу?
Теперь как его составить.
На мой взгляд тут есть два подхода - сделать пару методов, которые вернуть полное содержимое первого и второго плейлиста соответственно плюс что-то, что позволило бы судить о том, не был ли изменён плейлист. Как я уже говорил, лучше если бы в случае его изменения (или загрузки) срабатывало бы какое-нибудь событие, на которое можно было бы подписаться. Если этот механизм по какой-то причине нельзя использовать, то можно было бы просто завести переменную, в которой хранить какую-то условную цифру (например, это могла бы быть контрольная сумма посчитанная от всего плэейлиста представленного в виде строки), а изменение её говорило бы скрипту титра о том, что плейлист был изменён или перезагружен и его нужно перечитать.
Второй вариант - это набор методов, через которые можно было бы шерстить плейлист, не получая его полносью. Ну например, такой набор методов:
Код: Выделить всё
getNextItem() - вернуть следующий элемент плейлиста или null если конец (если встретился конец плэйлиста или если на зацикленном плейлисте встретился проигрываемый сейчас элемент);
setOnCurrent() - вернуться на текущий
Код: Выделить всё
getPlailistPosition() - вернуть текущую позицию плейлиста (или завести соответствующую переменную)
getPlailistItem(position) - вернуть указанный элемент плейлиста.