вторник, 19 октября 2010 г.

Интеграция Silverlight в Qt приложения

Хотелось бы опубликовать статью на русском языке об интеграции роликов Silverlight в Qt приложения.
Для этого используется библиотека Qtitan, она коммерческая, увы, но может быть кого-то заинтересует. К тому же ее вполне можно использовать в демо-режиме в некоммерческих целях.
Статья публикуется с негласного соглашения авторов фреймворка Qtitan Multimedia.

Интеграция Silverlight в Qt приложения


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

Мы тоже любим Qt, и мы захотели расширить наш любимый фреймворк возможностью работы с современной векторной графикой, например, мы захотели интегрировать в приложение ролики Adobe Flash или Microsoft Silverlight.

Ведь на Flash и Silverlight можно создавать умопомрачительные дизайнерские ролики, интерфейсы, игры, наконец. И все это доступно только через браузер. А ведь такие вещи будут нелишними и в десктоп приложениях. Встречайте наш компонент Qtitan Multimedia, созданный для того, чтобы объединить самые популярные технологии: Qt и мультимедийные платформы Flash и Silverlight.

Сегодня мы поговорим об интеграции Silverlight-роликов в обычное приложение, написанное на Qt с использованием компонента Qtitan Multimedia.

Silverlight

Так сложилось в нашем мире, что популярные технологии вместе с популярностью приобретают и конкурентов. Технология Adobe Flash получила себе в конкуренты графическую систему Silverlight от Microsoft.

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

Можно подумать, что Microsoft слегка запоздала вытеснять Flash, анонсировав Silverlight 1.0 в 2006 году, когда Flash был уже вне досягаемости, но Microsoft это все таки Microsoft и ресурсов у них для победы в этом мультимедийном поединке технологий предостаточно.

Что и подтверждается - на сегодняшний день Microsoft выпустил уже четвертую версию Silverlight и останавливаться определенно не собирается. Так, что тем, у кого возникают вопросы, вроде, “а нужно ли тратить время и усилия, чтобы изучать что-то новое?” хочется посоветовать забыть такие вопросы и, чтобы успеть вскочить на подножку поезда, начать изучать технологию Silverlight.

С технической стороны для клиента Silverlight представляет собой плагин для браузера, аналогично плагину Flash. Точно также, при заходе на страницу с роликом Silverlight вас попросят скачать плагин с сайта Microsoft, после чего можно наслаждаться дизайнерскими творениями, написанными на передовой технологии.

Плагин включает в себя полную версию .Net CLR. Таким образом, Silverlight-приложениям доступны все прелести .Net.

Silverlight реализован для Windows XP, Windows Vista, Mac OS X начиная с десятой версии, и браузеров Internet Explorer (с шестой версии), Mozilla Firefox, Safari, Chrome, Opera. Для Linux существует проект Moonlight, реализованный с использованием Mono (открытая реализация .Net для Linux).

Для разработчика Microsoft предоставила в распоряжение Visual Studio 2008 и пакет Silverlight Tools.

Visual Studio 2008 должна быть с первым сервис паком, иначе Silverlight Tools просто откажется устанавливаться.

Qtitan

Qtitan это компонент, уникальным достоинством которого является возможность интеграции в обычное приложение, написанное на Qt, роликов Flash или Silverlight.

Установив Qtitan Multimedia вы получите в распоряжение наследника от QWidget, на котором и будут располагаться ролики. Называется этот виджет Qtitan::Silverlight.

Технически, отображение роликов достигается за счет использования NPAPI плагинов, благодаря чему данный класс-контейнер способен отображать Netscape-совместимые плагины.

С прикладной точки зрения эти детали не имеют особого значения. Для прикладного программиста это будет стандартная работа с наследником QWidget.

При этом мы получим не абстрактный черный ящик, мол подали туда ролик и забыли, а напротив, Qt приложение может активно взаимодействовать с Silverlight роликом.

При этом есть два варианта взаимодействия:

Мы можем обратиться к функции pluginScriptValue() виджета Qtitan::Silverlight и получить экземпляр QScriptValue. Получив QScriptValue мы можем общаться с роликом так же как это делает веб-браузер через JavaScript.

И есть обратный способ: не Qt приложение обращается к ролику, а напротив - ролик Silverlight может вызвать функцию приложения. Достаточно зарегистрировать эту функцию вызовом метода registrScriptableFunction(...) виджета Qtitan::Silverlight. Тогда мы сможем при разработке ролика Silverlight вызвать эту функцию как обычную функцию JavaScript.


Qtitan Multimedia интегрируется с дизайнером форм Qt Designer, что позволяет упростить добавление новых объектов и ускорить процесс разработки.

В следующей статье мы рассмотрим пример интеграции Silverlight ролика в Qt приложение.

Комментариев нет:

Отправить комментарий