Flash動画が2秒で止まる病気の調査 - もう病気だw
Flash動画が2秒で止まる病気ですが、また発生しました。
いいかげん腹が立ったので再現性をのでもう少し調査してみました。夏休みの宿題ですw
その結果どうも2秒で止まる病気には2種類(もしくはそれ以上)あると思われます。
1.Flashを使っているページをタブで複数開きながら動画を見ると2秒で止まるパターン
Flashを使っているページをタブで複数開きながら動画を見ると2秒で止まります。これはある程度再現性があります。
どれぐらいの数のページを開いていると止まるのかは、ブラウザやページ内容などによっても違うようです。
VMWare上のWindows XP Pro SP3,Flash Player 9.0.124.0でテスト(ブラウザ以外は何もインストールしていません)
Flashを使ったページをタブで開いていき、何ページ目でyoutubeの動画ページを見ると動画がとまるかを調べました。
Firefox 2 | 6ページぐらいで止まる |
Firefox 3 | 10ページぐらいで止まる |
Opera 9.5 | 10ページぐらいで止まる |
Safari 3.1.2 | 15ページぐらいで止まる |
IE 7 | 20ページ以上開いても止まらず |
IEでは止まりませんでしたが、他のブラウザではある程度開くと止まるようになります。
一度止まるとページを閉じていっても止まるようになります。
他のページを全て閉じてから動画を見ると止まらず見られます。
各ブラウザのFlashをインストールしたときに気づいたのですが、
IEとそれ以外のブラウザとではインストーラーが違います。また、IEはActiveXです。
おそらくFlashのプログラム自体も違っていると思われます。
ともかくこのパターンの場合は一度ブラウザを再起動するだけ、もしくは見たい動画のページだけにすると直ります。
2.他のページを開いていないのに動画が止まるパターン
このパターンの再現性はつかめませんでした。
でも、たまーに起こります。こいつが問題です。
この現象が一度発生するとFlashのデータを消すまで直りません。
Flashのデータを消せば直るので、データに問題がある物と思われます。
上記2のパターンの推測
ここからは推測なのですが、以前にも書きましたがFlashのデータは全てのブラウザで共通のデータを使っています。
これが原因なのでは無いかと考えています。
異なるブラウザもしくは異なるプロセスからのアクセス制御がきちんとできていないのではないかと。。
ActionScriptのSharedObjectの説明には共有オブジェクトをロックするとか排他制御しているなどのことは明記していませんでしたが、なんか怖いことが書いてました。
ローカルディスク領域についての考慮事項。 ローカル共有オブジェクトには、アプリケーションを設計する際に考慮が必要な、いくつかの制限があります。SWF ファイルでローカル共有オブジェクトの書き込みが許可されない場合があります。ローカル共有オブジェクトに格納されているデータが、わからないうちに削除される場合もあります。
なんだ"わからないうちに"ってw
なんとなくデータの不整合が起こる可能性はありそうです。
Flash 10でなおるのかなぁ。。
と思っていたところにちょうどFlash Player 10RCが出たようなのでまた試してみます。