私はしばらくの間、Flash + Zincを使用して、ライブTV番組、主にクイズショー、ライブ選挙結果、およびビジュアルを以前に準備できず、進行中の状況に対応する必要があるその他のシナリオ用のシンプルなインタラクティブソフトウェアを作成してきました。次に、ビデオ信号はビデオ出力ポートまたはVGAからビデオへのコンバーターから出力され、ビデオミキサーを通過して輝度またはクロマキーが生成されます。この設定では、アプリケーションのコントロールは、ビデオに出力される領域の下にあります。
この設定の唯一の問題は、アルファチャネルがなく、ルーマとクロマキーの使用が非常に制限されていることです。
この問題を解決するために、CasparCGを使い始めました。私の理解では、このソフトウェアシステムはSWFを取得してActiveX Flash Playerで再生し、そこからカラーチャネルとアルファチャネルの両方を抽出して、分離されたカラーチャネルとアルファチャネルをサポートするプロのDeckLinkカードに送信します。全体が視覚的に非常にうまく機能しますが、再生中にActiveXコントロールが表示されないため、SWFでマウスまたはキーボードのイベントをキャプチャする方法がありません。
SWFにローカルWebサーバーの入力をポーリングさせようとしましたが、Adobe Flashでのテスト中は機能しますが、CasparCGServerによってホストされているActiveXでの再生中に失敗します。私が読んだことから、これはFlash Playerに組み込まれているセキュリティポリシーと関係があり、それについて私ができることはあまりありませんでした。
最終的に、SWFがローカルファイルをポーリングして、100ミリ秒間隔で新しいコマンドを探しました。その間、単純な制御アプリケーション(ローカルXAMPPサーバーのJS + PHP-Web開発に非常に慣れているという理由だけで)は、押されたボタンに対応するテキストファイルにコマンドを書き込みます。
これにより、ファイルがFlashまたはPHPのいずれかで開かれたときにいくつかの問題が発生しました。私は、成功するまで両方の当事者に読み取り/書き込みを再試行させることでこれを回避しました。
全体として、セットアップは機能しますが、これほどエレガントではないと思います。1つは、SWFがローカルテキストファイルに書き込んでそのステータスを報告する方法が見つからなかったため、多くの高度な機能を実現するのは現実的ではありません(コントローラー側のボタンを無効にするなど、基本的なUIのものでさえアニメーションはSWFで再生されています)。
私の質問は私にははっきりしていませんが、ここにあります:
- ローカルで再生されるSWFがディスクに書き込むことは可能ですか?
- 誰かがコミュニケーション全体を行うためのより良い方法を提案できますか?