Morioka.asでAIRとかFlexとかRed5とかRailsとかなんか

こっちにも資料アップ

発表でやった事を順番に。

AIR単体編


SQLite3を使ってデータの新規作成、更新、参照、削除ができる普通なAIRアプリ。
AIRはブラウザの制約を超えて色々出来るのがうりな訳で、どんな機能をデモするのがいいかなと思って、まずはSQLiteにしてみた。
オンライン時はサーバサイドのDBに保存、オフライン時はローカルのSQLiteに保存なんてのがやっぱりみんな考える事なんじゃなかろうか?

AIR+Rails(HTTPService編)


AIR+Railsでプレゼンソフト。
Railsサイドはscaffoldしただけ。
mxmlを用意。メッセージ表示用にLabelを一個だけ用意。
HTTPServiceを定義して、RailsのURLに HTTP GETを送れるようにする。
スライド操作用にマウスクリック、キーボードの右、左キーをイベント定義。
イベントでHTTPリクエストをRailsへ。
RailsからHTTP 応答が返ってくる。
帰ってきたメッセージを Labelにバインディング
一番お手軽なデータ通信方法をとりあえず。


AIR+Railsでアンケート結果を表示するアプリ。
これはRBCのイケテルで作ったやつをそのまま発表させてもらいました。
Railsで入力されたアンケート結果を円グラフで表示するというやつ。
円グラフをexcelpowerpointにドラッグすると画像として貼り付けられる。
逆にローカルからAIRアプリへのファイルドラッグもイベントを定義しておけば出来るようになるんだけど、それはやってる暇がなかった。
後はネットワークの状態監視。説明忘れたけど、googleに繋がるかどうかを定期的に監視しているので、無線を切るとオフラインになると。

AIR+Rails(RemotoObject編)


絵を描いてサーバサイドに保存という、こちらに載ってる奴をそのまま使わせてもらいました。
WebORB for Railsを使った例。
PNGEncoder.encode()がインスタンスメソッドに変わってたので、そこを直したぐらい。
ちなみにプレゼン本番で画像が保存されなかったのですが...
click='saveImage();'と;が入ってたのが原因でした><

Red5


オープンソースのフラッシュストリーミングサーバであるRed5を使ったデモをいくつか。
ボタン押してカメラの映像と音声をストリーミング開始。
それを受信して表示するプレイヤー。ブラウザを2つ開いてちゃんとライブストリーミングになってる事を確認。


録画スタートでカメラ動画と音声を録画し、ストップでサーバにFLVを保存。
再生でサーバに保存されたFLV動画を再生。

Rails+Flex+Red5(WebORB for Rails)


最後に、混ぜた奴をデモ。AIRアプリにしてもよかったんだけど、AIRの意味があまりなかったのでFlexにしといた。
ストリーミングを開始。
そのライブ映像を表示しつつ、脇でチャットが出来るアプリ。要はustream.tvもどき。
チャットのメッセージはSharedObjectを使って、サーバに。
これもブラウザ2つ開いて、チャットに反映されるさまを確認。
チャットに書き込むときに、メッセージをRailsへも送信、DBに格納。
履歴を見るボタンを押すと、Railsからメッセージを取得して過去のチャットログを全て表示。

感想など?

今回プレゼンをやるに当たって考えたのは、まず内容が他の方とかぶらない事。
それからやっぱりRails東北をやってるからには、Railsは絡めたいなと。
あと、なんとなく技術者的なアプローチの人は少なそうなのでちょっとデベロッパな感じのアプローチにしてみようと。
でもでもなんか面白いなと感じてもらえるようにビジュアルが面白いものも入れたいなと。
以上のことから、AIR,Flex,Rails,Red5という内容になりました。
あと、これは蛇足ですが、タイトルがアレなのは、単純におもいつかなかったのでそのままつかっちゃっただけという。


それにしても今回初めてRed5触りましたが、面白いですね。
映像とか音声を取り扱うというだけで単純にワクワクします。
んー、発表者枠がまだ埋まってないから、センスピ仙台Red5+Flex+Railsで喋ろうかな?
Morioka.asに出た人には大分重複した内容になりそうだけど。