我想使用字幕API。它需要視頻文件的第一個和最後一個64kb的md5散列。我知道如何做md5部分只是想知道我將如何實現128kb的數據。如何在Delphi中讀取視頻文件的第一個和最後一個64kb?
下面是在Java中我無法實現的問題的解決方案。 How to read first and last 64kb of a video file in Java?
我的Delphi代碼至今:
function TSubdbApi.GetHashFromFile(const AFilename: string): string;
var
Md5: TIdHashMessageDigest5;
Filestream: TFileStream;
Buffer: TByteArray;
begin
Md5 := TIdHashMessageDigest5.Create;
Filestream := TFileStream.Create(AFilename, fmOpenRead, fmShareDenyWrite);
try
if Filestream.Size > 0 then begin
Filestream.Read(Buffer, 1024 * 64);
Filestream.Seek(64, soFromEnd);
Filestream.Read(Buffer, 1024 * 64);
Result := Md5.HashStreamAsHex(Filestream);
end;
finally
Md5.Free;
Filestream.Free;
end;
end;
由官方API指出,我沒有得到準確的MD5哈希值。 API url here。我正在使用Delphi XE8。
你會發現故障了,你查讀的返回值,或使用ReadBuffer –