我正在使用带有IndyDownloads组件的Delphi 7作为我的下载器。我想在VLC播放器中播放正在下载的视频文件。当我试图在VLC中打开文件“myvideofile.avi.part”时,我收到以下错误。
VLC无法打开MRL'文件:/// D:/MyDir/myvideofile.avi.part'。查看日志以获取详细信息。
IndyDownloads使用filestream,我按如下方式创建了文件流:
TFileStream.Create(LocalFilename, fmCreate or fmShareDenyNone);
仍然没有用。
答案 0 :(得分:2)
您是哪个版本的Delphi?在旧版本中,fmCreate
不与其他Mode
标志共存。您指定的任何其他标志都将被忽略,然后fmCreate
本身将创建具有专有权的文件。这可以解释为什么VLC在打开文件时无法访问该文件。要解决这个问题,首先创建并关闭文件,然后重新打开具有较少限制权限的文件,例如:
FileClose(FileCreate(LocalFilename));
... := TFileStream.Create(LocalFilename, fmOpenReadWrite or fmShareDenyNone);
在现代Delphi版本中,fmCreate
现在与共享标志共存。