1

私は何か、youtubeのようなウェブサイト(pandoraはmp4sをします)を疑問に思っていました

  • フラッシュプレーヤーで音楽を再生する
  • 各トラックが再生されている間、それらはユーザーのコンピューターにダウンロードされます(例:/ tmp / FlashXX *****)。

これにより、ユーザーはflvをそのフォルダーから移動して、後で再生することができます。

ただし、ユーザーがflvを/ tmpフォルダーから移動すると、プレーヤーは音楽/ビデオを非常に楽しく再生し続けます。Flash Playerはファイルの削除をどのように処理し、なぜこれからエラーをスローしないのですか?

さらに重要なのは、プレーヤーがflvなしで楽しくプレイしているのに、そもそもflvがユーザーにダウンロードされるのはなぜですか?

4

3 に答える 3

2

Flashがファイルを表示するためにメモリに読み込んだため、一時フォルダからファイルを削除した後もコンテンツは再生され続けます。これは、ローカルに保存された画像をブラウザにドラッグした場合、ファイルを削除してもブラウザが画像の表示を停止しない理由と概念的に同じ理由です。

ファイルが保存される理由については、ブラウザに表示される他のファイルと同様に、単にキャッシュされるため、ページをリロードする場合、(必然的に)メディアファイルをリロードする必要はありません。

ただし、ビデオの場合は、これらすべてに注意が必要な場合があります。たとえば、ビデオを前方または後方にシークする場合、キャッシュされたバージョンが削除された場合にビデオがメモリから再生されるかどうかを確認できませんでした...そして私はFlashがムービー全体をメモリに保持しない状況があると想像します。しかし、一般的なケースの答えとして、物事はここで説明されているようにする必要があります。

于 2010-08-09T01:50:01.043 に答える
2

これは実際にはキャッシングとは何の関係もありません。むしろ、Unixファイルシステムの動作方法が原因で動作します。ファイルが開かれると、そのiノードが読み取られ、データがディスク上のどこにあるかが示されます。ファイルが移動または削除されると(「リンク解除」)、iノードは新しい場所に移動されるか、ディレクトリから削除されます。ただし、それが指すデータは、そのiノードへの参照が存在しなくなるまで無効になりません。つまり、ファイルが開いたままである限り、ファイルを削除または移動しても、そのファイルを読み取るプログラムには影響しません。

これは、Windowsファイルシステムの動作方法ではありません。つまり、使用中のファイルを削除しようとすると、一般的な「ファイルがロックされている」という問題が発生します。(免責事項:これは、ハードリンクをサポートするNTFSには当てはまらない可能性がありますが、FATの場合は確かにそうでした。)

それは非常にうまく機能するので、プログラムがファイルを作成し、ファイルを開いたままですぐに「削除」することによって、それ自体の後で自動的にクリーンアップするトリックを使用することさえあります。そうすれば、プログラムが完了するまで一時ファイルを使用し続けることができ、プログラムが完了すると、一時ファイルは自動的に「消えます」。

ちなみに、一時ファイルを閉じて再度開くことができると期待しているプログラムは、移動すると混乱します。ハードリンクを使用して「コピー」を作成することで、これを回避できます。

ln /tmp/Fl* .

このコマンドは、一時ファイル用にFlashによって参照されるiノードのコピーを現在のディレクトリに作成します。実際にはファイルの内容をコピーするのではなく、ディスク上の同じデータへの2番目の参照を作成するだけです。そうすれば、Flashが閉じても、リリースされたデータへの「ポインター」が残ります。

私はしばらくこのトピックを研究しておらず、いくつかの用語が間違っている可能性があるので、さらに理解したい場合は、iノードとハードリンクの仕組みを読んでください。

そのウィキペディアのリンクから:

リンクを解除するプロセスでは、関連付けられたデータを破棄せずに、ボリューム上のデータから名前の関連付けを解除します。データを指すリンクが少なくとも1つ存在する限り、データには引き続きアクセスできます。最後のリンクが削除されると、スペースは空きと見なされます。

于 2010-09-01T01:06:24.433 に答える
0

* nixシステムでの動作を説明していると思いますか?

彼らは、このようなもの、inotify、またはこの.NETイベントを使用してファイルシステムを監視しているだけかもしれません。最新バージョンのWindowsで一時的な.flvファイルを移動できるとしたら、私は驚きます。そのためにフラッシュが機能しなかったとしたら、それは大変なことです。

しかし、ええ、私の推測では、フラッシュプレーヤーは、ファイルから再度読み取る必要がある場合に備えて、新しいパスへのハンドルを受け取るため、ファイルが移動するときに動揺することはありません。長い(たとえば、約1時間)ビデオの再生中に、意図的に権限を変更したり、.flvを破損または削除したりすると、どうなりますか?

于 2010-08-09T02:01:07.380 に答える