Вопросы по реализации sms и автоматических уведомлений

Здесь обсуждаются любые продукты компании СофтЛаб-НСК для телевизионного вещания (Форвард Т, Форвард ТС, Форвард Голкипер, Форвард Рефери, Форвард Офис, Форвард Инжест)

Модераторы: ElenVR, Людмила, PR

Ответить
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Вопросы по реализации sms и автоматических уведомлений

Сообщение krukovna »

Доброго времени суток.

Ситуация такова, что сейчас мы используем Форвард только как титровалку, вещание идет с другого софта. В связи с этим, нет возможности сделать единый синхронизированный плейлист роликов и титровальных объектов.

Вопросы:
1. Сейчас реализовали смс-чат, написав свой клиент для отсылки сообщений объекту sms-roll. Логика получилась примерно следующая: в клиенте происходит оценка длины сообщения и взависимости от нее задаются разные стили на размер шрифта для вывода на экран. Т.е., например, при стиле №3 размер шрифта таков, что сообщение из 60 символов влезет в две строки, а если символов 80, то строки будет три и размер шрифта должен быть еще меньше.
Но есть проблема. Иногда сочетание длинны слов такого, что сообщение, которое должно вывестись на две строки, выводится на три. Соответственно, сообщение вылезает за границы объекта.
Да, забыл сказать, что все размеры подогнаны так, что одновременно на экране только одно сообщение.
Так вот, вопрос. Нельзя ли как-то ДО этапа вывода собщения на экран узнать точно, на сколько строчек будет выведено собщение? Или сколько пикселей по высоте оно будет? кароче, какую-нибудь инфу, чтобы позволила оценить правильность выбора размера шрифта.

2. Есть необходимость сделать такую вещь, как "далее в программе". Так как плейлист не един, то самый легкий способ который мне виден, это:
реализуется flash-элемент, который читает инфомацию из некоторого xml файла, в котором хранится информация о выводе этих плашек (как в этот файл попадает инфа - это уже наши проблемы :D ). Этот элемент постоянно присутствует на экране в режиме "включен", но поумолчанию прозрачен. И отрисовкой всей анимации (включая появление и исчезание с экрана) занимается сам.
Вопрос: в чем я не прав?

3. Можно ли управлять включением/отключением плашек, изменением картинок в эфире в резиме realtime не через onAir, а через внешнее приложение (самописное)?

Прошу прощения за некоторый сумбур, который присутствует в вопросах, но что-то трудно формулируется.

Если необходимо, могу предоставить скрины для демонстрации пункта 1.

С уважением,
Павел.
admin
Site Admin
Сообщения: 323
Зарегистрирован: 07 ноя 2005 19:42

Сообщение admin »

3. Можно ли управлять включением/отключением плашек, изменением картинок в эфире в резиме realtime не через onAir, а через внешнее приложение (самописное)?
Да, это возможно. Существует специальное SDK, которое позволяет:
1)принимать в программе OnAir команды из внешних приложений,
2)посылать из программы OnAir команды внешним приложениям

Скиньте свой адрес на forward@sl.iae.nsk.su и мы Вам его вышлем.
admin
Site Admin
Сообщения: 323
Зарегистрирован: 07 ноя 2005 19:42

Сообщение admin »

Есть необходимость сделать такую вещь, как "далее в программе". Так как плейлист не един, то самый легкий способ который мне виден, это: реализуется flash-элемент, который читает инфомацию из некоторого xml файла, в котором хранится информация о выводе этих плашек (как в этот файл попадает инфа - это уже наши проблемы ). Этот элемент постоянно присутствует на экране в режиме "включен", но поумолчанию прозрачен. И отрисовкой всей анимации (включая появление и исчезание с экрана) занимается сам.
Вопрос: в чем я не прав?
Вы правы во всем. Наш титровальный элемент "flash", во-первых, поддерживает прозрачность; во-вторых, поддерживает исполнение ActiveScript сриптов.
Объединив эти две возможности Вы можете реализовать задуманное.
Здесь пример и обсуждение флэшки, которая внутри себя исполняет скрипт:
viewtopic.php?t=2113
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

Благодарю за ответы. Письмо написал. Флэшку глянули - все кул.

А по поводу первого вопроса?
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

По первому вопросу ответим чуть попозже - надо смотреть, что именно возможно выдать наружу и каким образом лучше это сделать.
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

Благодарю.
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

Позволю себе еще пару вопросов в догонку.

1. Как flash-объект отнесется к проигрыванию звука? И попадет ли звук в эфир?
2. К вопросу о SDK для взаимодействия в OnAir. А посылать команды из внешних приложений непосредственно flash-объекту возможно?
3. Опять же о SDK. Не нашел информации об этом. Нельзя управлять размещением титровальных элементов, их свойствами? Динамически изменять структуру титров.

Заранее спасибо.
Игорь Таранцев
Сообщения: 493
Зарегистрирован: 04 янв 2004 12:45
Откуда: СофтЛаб-НСК

Сообщение Игорь Таранцев »

1. Мы умеем "грабить" картинку из-под flash-плеера. Грабить звук мы не умеем, поэтому он будет играться на обычном устройсве, где играются остальные системные звучки. Если выбрать в качестве Default DirectSound Device выход платы FD300, то звук из flash-файла будет слышен на выходе. Однако в этом случае и все системные звучки (клики мышки, открытие/закрытие окон и т.д.) тоже будут слышны в эфире :(

2. Нет, посылать команды нашему объекту flash-плееру нельзя никаким способом. Можно организовывать общение с flash-плеером разными способами, например, через внешний файл на диске.

3. SDK для общения с программой OnAir не позволяет изменять положение и тип титров на экране. Для этого есть программа TitleDesigner. Предполагается, что программа OnAir служит для воспроизведения титров по расписанию. Главная задача программы OnAir - выполнять расписание.
Наверное, Вам проще воспользоваться SLTMTitleRunTimeSDK - SDK для загрузки титровального проекта (созданного в программе TitleDesigner), загрузки заданий в каждый из титровальных объектов, их старт-стопа.
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

1. Либо отключить все звуки винды... Как варинт, надо пробовать.

2. Понял, так и сделаем.

3. Отлично, спасибо. Будем разбираться.
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

1. Сейчас реализовали смс-чат, написав свой клиент для отсылки сообщений объекту sms-roll. Логика получилась примерно следующая: в клиенте происходит оценка длины сообщения и взависимости от нее задаются разные стили на размер шрифта для вывода на экран. Т.е., например, при стиле №3 размер шрифта таков, что сообщение из 60 символов влезет в две строки, а если символов 80, то строки будет три и размер шрифта должен быть еще меньше.
Но есть проблема. Иногда сочетание длинны слов такого, что сообщение, которое должно вывестись на две строки, выводится на три. Соответственно, сообщение вылезает за границы объекта.
Да, забыл сказать, что все размеры подогнаны так, что одновременно на экране только одно сообщение.
Так вот, вопрос. Нельзя ли как-то ДО этапа вывода собщения на экран узнать точно, на сколько строчек будет выведено собщение? Или сколько пикселей по высоте оно будет? кароче, какую-нибудь инфу, чтобы позволила оценить правильность выбора размера шрифта.
Мы можем добавить специальный интерфейс "Test", которому передается строчка текста, стиль..., т.е. все необходимое для расчета количества строчек текста. Результатом будет информация о "заполненности" региона, в который будет выводиться текст.
Результат можем вывести:
1)В % - т.е. сколько процентов региона (по высоте) будет заполнено
2)В виде двух чисел - высота региона и "высота" текста.
Что лучше?
Какие еще параметры нужны?
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

Для нас идеальным вариантом было бы получение числа - количество строк. Если не возможно, то лучше проценты, так как их можно примерно перевести в количество строк , на уровне программы.

Я говорю именно о строках потому, что размер шрифта в разных стилях сейчас расчитан таким образом, чтобы практически при любой длинне сообщения выводимый текст занимал всю высоту региона или ее максимальную часть.

И вопрос. А если текст при данном стиле "вылезет" за регион - что вернет интерфейс Test? Больше 100%?
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Для решения Вашей задачи количество строк не нужно. Достаточно отслеживать процент заполненности региона, отведенного под показ смс-ок.
Вы перед показом очередного объявления дергаете функцию Test(...)- она возвращает Вам число в процентах. Если число меньше 100% - значит весь текст войдет в регион, если больше - то не войдет. Если ответ получился больше 100%, то Вы выбираете следующий шрифт и повторяете процедуру с Test(...). И так до тех пор пока не получите ответ < 100%
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

Да, логично, что-то я не подумал об этом :)

И последний, логичный вопрос на тему интерфейса, чтобы что-то начальству ответить. Когда? :)
admin
Site Admin
Сообщения: 323
Зарегистрирован: 07 ноя 2005 19:42

Сообщение admin »

Уже обсудили, в план поставили. Точный срок, к сожалению, сказать не можем. Но, по всей видимости, слишком много времени занять не должно.
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

В релизе 4.3.0 в SMS SDK будут добавлены следующие методы:

Проверка сообщения:
hr =m_spISMSObject->TestMessage(bstrMessageString, NULL, nStyleIndex, nMessageID, &fFillness);
if (FAILED(hr))
{обработка ошибки}
if ( fFillness <= 1.0f )
{сообщение <= высоты региона}
Функция TestMessage возвращает коэффициент заполнения региона.

Получение количества стилей в титровальном элементе:
hr = m_spISMSObject->GetStyleCount(&StyleCount);
if (FAILED(hr))
{обработка ошибки}
Функция GetStyleCount возвращает количество стилей в файле стилей подключённом к титровальному элементу.
Ответить