Delphi7 IndyDownloads,下载时无法在VLC中播放视频文件

时间:2012-02-15 08:06:38

标签: delphi indy

我正在使用带有IndyDownloads组件的Delphi 7作为我的下载器。我想在VLC播放器中播放正在下载的视频文件。当我试图在VLC中打开文件“myvideofile.avi.part”时,我收到以下错误。

VLC无法打开MRL'文件:/// D:/MyDir/myvideofile.avi.part'。查看日志以获取详细信息。

IndyDownloads使用filestream,我按如下方式创建了文件流:

TFileStream.Create(LocalFilename, fmCreate or fmShareDenyNone);

仍然没有用。

1 个答案:

答案 0 :(得分:2)

您是哪个版本的Delphi?在旧版本中,fmCreate不与其他Mode标志共存。您指定的任何其他标志都将被忽略,然后fmCreate本身将创建具有专有权的文件。这可以解释为什么VLC在打开文件时无法访问该文件。要解决这个问题,首先创建并关闭文件,然后重新打开具有较少限制权限的文件,例如:

FileClose(FileCreate(LocalFilename));
... := TFileStream.Create(LocalFilename, fmOpenReadWrite or fmShareDenyNone); 

在现代Delphi版本中,fmCreate现在与共享标志共存。