Титровальные скрипты
Модераторы: Людмила, PR, vd, Даниленко Сергей
-
- Сообщения: 76
- Зарегистрирован: 02 июн 2010 12:48
- Откуда: Красноярск, Прима-ТВ
- Контактная информация:
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 76
- Зарегистрирован: 02 июн 2010 12:48
- Откуда: Красноярск, Прима-ТВ
- Контактная информация:
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 76
- Зарегистрирован: 02 июн 2010 12:48
- Откуда: Красноярск, Прима-ТВ
- Контактная информация:
Добрый день. Еще порция вопросов:
1) При остановке главного объекта MAIN, я в OnElementStop останавливаю все остальные титр.элементы скрипта
достаточно просто вызывать для каждого элемента например
if (name==MAIN.Name) {
xxx.Stop(0,0);
.....
xxx.Stop(0,0);
}
Не проверяя их статус - запущен или нет. или лучше делать условие
вида
if (xxx.Status==SLTMRunTimeStatus.eRunning) {xxx.Stop(0,0);}
2) Что лучше вызывать Stop(0.0) или Abort(0) для остановки элелементов.
3) Если вызывается функция Stop. то в ней я делаю стоп для Main и в событии (OnElementStop) останавливаю остальные элементы.
4) Если вызывается функция Abort . то этого события (OnElementStop) не генерируется. Получается надо в function Abort стопить все титр. элементы скрипта в этом случае?
1) При остановке главного объекта MAIN, я в OnElementStop останавливаю все остальные титр.элементы скрипта
достаточно просто вызывать для каждого элемента например
if (name==MAIN.Name) {
xxx.Stop(0,0);
.....
xxx.Stop(0,0);
}
Не проверяя их статус - запущен или нет. или лучше делать условие
вида
if (xxx.Status==SLTMRunTimeStatus.eRunning) {xxx.Stop(0,0);}
2) Что лучше вызывать Stop(0.0) или Abort(0) для остановки элелементов.
3) Если вызывается функция Stop. то в ней я делаю стоп для Main и в событии (OnElementStop) останавливаю остальные элементы.
4) Если вызывается функция Abort . то этого события (OnElementStop) не генерируется. Получается надо в function Abort стопить все титр. элементы скрипта в этом случае?
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Давайте объясню сначала разницу между Stop и Abort, поскольку все вопросы именно с этим связаны.
На пример бегущей строки.
Если титровальному элементу "бегущая строка" послать команду Stop (0, 0), то он будет доигрывать текущее (которое сейчас бежит по экрану) объявление.
Если вы вызовите Abort, то показ прекратится немедленно и текущее объявление (которое сейчас бежит по экранц) не будет доиграно.
Это принципиальное отличие. Если судить по фрагменту вашего кода, то вам лучше всё таки вызывать именно Abort.
По вопросам:
1)Статус лучше проверять и останавливать только запущенные
2)Отвечено
3)Да
4)Да, именно. Только нужно не "Stop" вызывать, а именно "Abort" для кадого запущенного элемента
На пример бегущей строки.
Если титровальному элементу "бегущая строка" послать команду Stop (0, 0), то он будет доигрывать текущее (которое сейчас бежит по экрану) объявление.
Если вы вызовите Abort, то показ прекратится немедленно и текущее объявление (которое сейчас бежит по экранц) не будет доиграно.
Это принципиальное отличие. Если судить по фрагменту вашего кода, то вам лучше всё таки вызывать именно Abort.
По вопросам:
1)Статус лучше проверять и останавливать только запущенные
2)Отвечено
3)Да
4)Да, именно. Только нужно не "Stop" вызывать, а именно "Abort" для кадого запущенного элемента
-
- Сообщения: 76
- Зарегистрирован: 02 июн 2010 12:48
- Откуда: Красноярск, Прима-ТВ
- Контактная информация:
Добрый день.
Возник новый вопрос:
В титр проект вставил элемент DShow для проигрывания файла WAV.
При остановке проекта останавливаю его по SOUND.Abort(0);
В ОнЭйре получается что после любой команды что СТОП что ABORT видео файлы в таких элементах стартуют заново, а звук продолжает проигрываться с места обрыва.
Это так и задумано?
Как можно добиться рестарта звука, только перезагрузкой задания в титр элемент?
Возник новый вопрос:
В титр проект вставил элемент DShow для проигрывания файла WAV.
При остановке проекта останавливаю его по SOUND.Abort(0);
В ОнЭйре получается что после любой команды что СТОП что ABORT видео файлы в таких элементах стартуют заново, а звук продолжает проигрываться с места обрыва.
Это так и задумано?
Как можно добиться рестарта звука, только перезагрузкой задания в титр элемент?
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Вряд ли так задумано. Скорее всего это ошибка.
Разработчикам информация передана.
А пока можно решить проблему путём загрузки задания перед воспроизведением wav-файлов.
Разработчикам информация передана.
А пока можно решить проблему путём загрузки задания перед воспроизведением wav-файлов.
Последний раз редактировалось Даниленко Сергей 20 май 2013 11:29, всего редактировалось 1 раз.
-
- Сообщения: 76
- Зарегистрирован: 02 июн 2010 12:48
- Откуда: Красноярск, Прима-ТВ
- Контактная информация:
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 76
- Зарегистрирован: 02 июн 2010 12:48
- Откуда: Красноярск, Прима-ТВ
- Контактная информация:
Еще вопрос по работе с файлами:
Скрипт Титр.проекта в ОнЭйр загружает файл TGA в титр.объект - после этого файловая система блокирует доступ к файлу. Нельзя ни удалить его ни перезаписать.
По алгоритму в работе находятся 2 граф. файла. Первый на экране, второй подгружен для быстрой подмены. Но фактически доступ блокируется не меньше чем к 5 файлам, которые подгружались.
Можно ли как то программно разблокировать файлы? Или есть какие то еще варианты, для оперативной замены граф. файлов в директории.
Дополнение: файлы загружаю в DShow - так как показываем либо видео в этой области, либо картинку.
Скрипт Титр.проекта в ОнЭйр загружает файл TGA в титр.объект - после этого файловая система блокирует доступ к файлу. Нельзя ни удалить его ни перезаписать.
По алгоритму в работе находятся 2 граф. файла. Первый на экране, второй подгружен для быстрой подмены. Но фактически доступ блокируется не меньше чем к 5 файлам, которые подгружались.
Можно ли как то программно разблокировать файлы? Или есть какие то еще варианты, для оперативной замены граф. файлов в директории.
Дополнение: файлы загружаю в DShow - так как показываем либо видео в этой области, либо картинку.
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Мы проверили у себя. Поведение видеофайлов точно такое же. После abort и последующего старта воспроизведение идёт с прерванного места.В титр проект вставил элемент DShow для проигрывания файла WAV.
При остановке проекта останавливаю его по SOUND.Abort(0);
В ОнЭйре получается что после любой команды что СТОП что ABORT видео файлы в таких элементах стартуют заново, а звук продолжает проигрываться с места обрыва.
Поэтому ничего для wav-файлов менять не будем.
С tga-файлами разбираемся.
-
- Сообщения: 76
- Зарегистрирован: 02 июн 2010 12:48
- Откуда: Красноярск, Прима-ТВ
- Контактная информация:
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Отсрочить может если для показа последовательности файлов использовать только один титровальный элемент. Сказать насколько - затруднительно, т.к. это зависит от многих обстоятельств (размер файла. состояние дисковой системы и т.д.).Интересно насколько сильно может загрузка видео файла в задание отсрочить старт скрипта.
Чтобы избежать подобных проблем мы в скриптах всегда используем пару титровальных элементов, работающих по принципу "флип-флоп". Т.е. один элемент занимается отображением, а в другой грузится следующее задание. Тогда к моменту остановки первого второй уже будет готов к работе и никаких перерывов в конвейере воспроизведения не будет.