У меня есть видео большого размера, сохраненное в папке с документами. Я хочу получить это видео и удалить первые 5 байтов. Для больших видеофайлов размером более 300 МБ использование [NSData(contentsOf: videoURL)] вызывает ошибку проблемы с памятью.
Я прошел через Swift: загрузка большого видеофайла ( более 700 МБ) в память и обнаружили, что нам нужно использовать [InputStream] и [OutputStream] или [NSFileHandle] для больших файлов. Как это использовать?
Пример кода приведен ниже:
let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory
let nsUserDomainMask = FileManager.SearchPathDomainMask.userDomainMask
let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
if let dirPath = paths.first{
let videoURL = URL(fileURLWithPath: dirPath).appendingPathComponent(filePath)
do {
let videoData = try NSData(contentsOf: videoURL)
let mutabledata = videoData.mutableCopy() as! NSMutableData
mutabledata.replaceBytes(in: NSRange(location: 0, length: 5), withBytes: nil, length: 0)
}catch {
print("Error Writing video: \(error)")
}
FileHandler
, такие как ,seek
иwrite
? - person netigger   schedule 23.09.2019FileHandle
: developer.apple.com/documentation/foundation/filehandle/< /а> - person netigger   schedule 23.09.2019