Delphi7 IndyDownloads, не может воспроизвести видео файл в VLC во время загрузки - PullRequest
0 голосов
/ 15 февраля 2012

Я использую Delphi 7 с компонентом IndyDownloads для моего загрузчика. Я хочу воспроизвести видео файл, который загружается, в проигрывателе VLC. Когда я пытался открыть файл «myvideofile.avi.part» в VLC, я получаю следующую ошибку.

VLC не может открыть файл MRL: /// D: /MyDir/myvideofile.avi.part '. Проверьте журнал для деталей.

IndyDownloads, используя файловый поток, я создал файловый поток следующим образом:

TFileStream.Create(LocalFilename, fmCreate or fmShareDenyNone);

Все равно это не сработало.

1 Ответ

2 голосов
/ 16 февраля 2012

Какая версия Delphi вы?В более старых версиях fmCreate не сосуществует с другими флагами Mode.Любые дополнительные флаги, которые вы укажете, будут просто проигнорированы, и fmCreate сам создаст файл с исключительными правами.Это может объяснить, почему VLC не может получить доступ к файлу, пока он еще открыт.Чтобы обойти это, сначала создайте и закройте файл, а затем снова откройте файл с менее ограничительными правами, например:

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

В современных версиях Delphi fmCreate теперь сосуществует с флагами общего доступа.

...