再生中にビデオ ファイルをコピーするプログラムがあります。
多くの場合、ビデオ プレーヤー (サード パーティ) は、プログラムで FileStream を Close() するたびに、約 0.5 秒間ファイルにアクセスできません (再生がフリーズします)。
私が知る限り、Close() の代わりに Dispose() を使用しても問題ありません。ファイルは期待どおりに新しい場所にコピーされるため、再生のフリーズは解決する必要がある問題ですが、率直に言って、サードパーティのソフトウェアがファイルを読み取る方法の詳細はわかりません。読み取りストリームを閉じたときに問題が正確に発生する理由を理解できません。
ビデオ プレーヤーの再生が完了するまで、コピー プロセスを延期する必要はありません。
任意の提案をいただければ幸いです。
FileStream SourceFile = new FileStream(sourcePath, FileMode.Open, FileAccess.Read);
while(bytesLeftToCopy > 0)
{
int _BlockSize = 1024 * 1024;
byte[] _BlockBuffer = new byte[_BlockSize];
SourceFileBytes = SourceFile.Read(_BlockBuffer, 0, _BlockSize);
//you get the idea
}
SourceFile.Close();