FLVPlaybackによる大容量・複数FLVファイルのプログレッシブダウンロード
先般、会社の先輩が、FLVPlaybackコンポーネントを使用して外部サーバに置いてある大容量FLVファイル(30分くらいのもので250MBくらい)をプログレッシブダウンロードで複数切り替えて見せるFlashのページを作っていて、「WindowsのIEでだけ動画を切り替えるとPCのパフォーマンスが極端に落ちるんだけどなんでだべ?」と聞かれたので一緒に色々と検証してみました。
プログレッシブダウンロードだと最初はサーバからデータを落としてくるのですが、2回目以降はブラウザのキャッシュにあるデータを読みにいくらしく、調べた所、どうもIEでは重いデータをキャッシュから展開するのに時間がかかるらしい。
そこでキャッシュではなく、毎回サーバに読みにいかせる様に、
var noCache:Number = Math.floor(Math.random()*10000);
video.contentPath = "http://d.hatena.ne.jp/oneinchpunch.flv"+"?"+noCache;
みたいな感じで、ファイル名の後にランダムなクエリストリングスというのを付ける方法を見つけたので試して見るが、FLVPlaybackは末尾が「.flv」以外のファイルを読み込まないため、.flv以外でも読み込む事の出来る古いヴァージョンのmediaplaybackコンポーネントにて対応するわ〜、という事に落ち着いた。
FLVPlaybackのまま、クラスファイルを書き換える方法も見つけて試したのですが、上手く行かなかったんだよな〜。