如何在 Swift 中读取视频文件的第一个和最后一个 64kb

How to read first and last 64kb of a video file in Swift

我想使用 subtitle API。它需要视频文件第一个和最后一个 64kb 的 md5 散列。我知道如何做 md5 部分只是想知道我将如何获得 128kb 的数据。

这是 Java 中问题的解决方案,我无法在 Swift 中实现。 Stack

我有一个视频 URL,如何从中获取第一个和最后一个 64kb?上 AlamoFire 然后呢?

下面是在 Java、

中是如何完成的
FileInputStream in = new FileInputStream("d:/1.avi");
byte[] a = new byte[64 * 1024];
in.read(a);   //head
long p = in.getChannel().size() - 64 * 1024;
in.getChannel().position(p);
in.read(a);   //tail

正确的做法如下:

let data = try! Data(contentsOf: URL(string: <#Insert your URL#>)!) // should do some unwrapping precautions here

// first 64 bytes
let first = data.subdata(in: 0 ..< 65336) // 65336 bytes = 1kb (if 1kb = 1024 bytes)

// last 64 bytes
let last = data.subdata(in: (data.count - 65336)..<data.count) // data.count - 65366 = last 64 bytes of the file

因此,首先下载文件(例如使用 Alamofire)。完成后,将 URL 放入 URL 初始化程序的 string: 参数中。

然后,使用变量firstlast得到md5。