サーバにアップしたFlashでFLVが再生されない。
なんだろうとしばらく悩みましたが、他のサーバにアップして再生されたのでサーバに原因がありそうだと特定。
ネットで検索するとIISでMIME設定が必要だと・・・。
Windowsサーバなんてあまり使わないのでFlashの作りが悪いのかと思った。
サーバにアップしたFlashでFLVが再生されない。
なんだろうとしばらく悩みましたが、他のサーバにアップして再生されたのでサーバに原因がありそうだと特定。
ネットで検索するとIISでMIME設定が必要だと・・・。
Windowsサーバなんてあまり使わないのでFlashの作りが悪いのかと思った。
テキストエリアのスクロールバーなど、コンポーネントをFlashで使用した場合のデータのロードについてですが、ヘルプに記述されていました。
「コンポーネントでのプリローダーの使用」
コンポーネントなど使用した場合、ステージ上で使用しているフレーム数が1フレームより後であった場合でも、デフォルトでは1フレーム目で一番最初にロードされるようで、プリロードのプログレスバーなど表示する場合は、コンポーネントを読み込んだ後にプログレースバーが再生されてしまう。
そこで、コンポーネントをロードするフレームを1フレームより後に変更する。
「パブリッシュ設定」の「Flash」で、「設定」ボタンがあるのでクリックし「クラス用のフレームの書き出し」でフレーム数を指定する。
これは、コンポーネントを使用するフレームの前でロードする必要があります。
また、クラスファイルのロードについても同様である。
http://www.adobe.com/devnet/devices/articles/flashlite11_rss.html
アドビの「Mobile and Devices Developer Center」にFlashLiteとRSSのサンプルがありました。
ActionScriptが弱い感じのLite1.1でどうするの?と思ったら、PHPとの連携なのですね。
CSVを読む場合もCGIやPHPで 名前=値 の形に出力して読むことをしていましたが、RSSもPHPで読み込んで、 名前=値 の形に出力してからFlashで読むのですね。
サンプルではPHP5で使える関数を利用していたので、PHP4だとチョット・・・。
ライブラリを使ったら良いかな。
http://magpierss.sourceforge.net/
今回はAmazonWEBサービスのFlashを作ってみた。
FLV PlaybackでのFLV再生は設定を変えるだけで良く、ボタンの指定も簡単にできる。
コンポーネントのインスタンス名.playButton = ボタンのインスタンス名;
ファイルにスキンの容量が入るので、もっと軽いファイルを作りたい場合はビデオオブジェクトを作成しActionScriptで制御する。
ビデオオブジェクトはライブラリで新規ビデオから作成。
ステージに配置し、インスタンス名やサイズを変更する。
var _nc:NetConnection = new NetConnection();
_nc.connect(null);
var _ns:NetStream = new NetStream(_nc);
ビデオオブジェクトのインスタンス名.attachVideo(_ns);
_ns.play("FLVファイルのパス");
FlashVideo形式のファイルFLVを再生するためには、動画ファイルをエンコードしてFlashに配置する場合とエンコードしたFLVをFlash内に配置する方法がある。
Flashに読み込んでエンコードする場合は、新規ドキュメントを作成しビデオの読み込みを行う。
ウィザード形式なので設定さえ分かれば簡単である。
エンコード済みのFLVをFlashに配置する場合は、ドキュメントのステージにコンポーネントのFLV Playbackを配置しパラメータでFLVやスキンを選択する。
DreamweaverでFLVをhtmlに挿入しても再生はできます。
Flashビデオの配信方法についてまとめる。
大きく分けて3つ。
プログレッシブダウンロードは、動画がダウンロードされ再生可能になった段階で再生がスタートされる。
ストリーミングは専用のサーバが必要で、Flash Video Streaming Service(FVSS)やFlash Media Server(FMS)、Flash Communication Server(Flash Comm)などが必要である。
プログレッシブダウンロードと違い即時再生である。
埋め込みによるタイムライン再生は、ファイルサイズを大きくし待ち時間も長い。