разговор с флэш-памятью, работающей в локальном ActiveX, управляемом другим программным обеспечением - PullRequest
1 голос
/ 03 февраля 2012

Я уже некоторое время использую Flash + Цинк для создания простого интерактивного программного обеспечения для телепередач в прямом эфире, в основном для викторин, результатов выборов и других сценариев, когда визуальные эффекты не могут быть подготовлены ранее и необходимо ответитьв текущей ситуации.Затем видеосигнал будет выводиться через порт видеовыхода или преобразователь VGA в видео и проходить через видеомикшер, где он будет иметь яркость или цветность.При этой настройке элементы управления для приложения будут находиться под областью, выводимой на видео.

Единственная проблема с этой настройкой состоит в том, что нет альфа-канала, а использование яркости и цветовой настройки очень ограничено.

Для решения этой проблемы я начал использовать Caspar CG .Насколько я понимаю, эта программная система берет SWF-файл и воспроизводит его в ActiveX Flash Player, из которого можно извлечь как цветной, так и альфа-канал, и отправить их на профессиональную карту DeckLink, которая поддерживает отдельные цветовые и альфа-каналы.Все это работает очень хорошо визуально, но поскольку элемент управления ActiveX не виден во время воспроизведения, у моего SWF нет возможности записывать события мыши или клавиатуры.

Я попытался провести опрос SWF на локальном веб-сервере.для ввода, но хотя он работает во время тестирования в Adobe Flash, он не работает во время воспроизведения в ActiveX, размещенном на сервере Caspar CG.Из того, что я прочитал, это связано с политиками безопасности, встроенными во Flash Player, и я ничего не мог с этим поделать.

В итоге у меня был SWF-опрос локального файла для новых команд на 100мс интервалы.В то же время простое управляющее приложение (JS + PHP на локальном сервере XAMPP - просто потому, что я очень легко разбираюсь в веб-разработке) должно было написать команду в текстовом файле, соответствующем нажатой кнопке.

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

В целом, установка работает, но я чувствую этоне может быть менее элегантным, чем это.Во-первых, я не нашел способа, чтобы SWF-файл мог записывать в локальный текстовый файл, чтобы сообщать о его статусе, поэтому реализовать многие расширенные функциональные возможности нецелесообразно (даже базовые функции пользовательского интерфейса, такие как отключение кнопок на стороне контроллера при определенных обстоятельствах).анимации воспроизводятся на SWF).

Мои вопросы мне даже не ясны, но вот они:

  1. Возможно ли записать локально воспроизводимый SWF на диск??
  2. Кто-нибудь может предложить лучший способ сделать общение целиком?

1 Ответ

1 голос
/ 03 февраля 2012

Альтернативой для # 2 может быть LocalConnection , при условии, что вы можете запустить исполняемый файл Caspar CG и управляющее приложение swf / Zinc на одном компьютере.

...