Ios 如何输出AVAsset(超过500mb)并将其写入路径中的新文件,例如:NSTemporaryDirectory

Ios 如何输出AVAsset(超过500mb)并将其写入路径中的新文件,例如:NSTemporaryDirectory,ios,objective-c,avasset,Ios,Objective C,Avasset,我想通过使用NSURLSession(文件)上传一个大的AVAsset(超过500mb)。 首先,我需要复制一个avasset并将其写入临时路径 filePath = [(AVURLAsset *)avasset URL]; // file:///var/mobile/Media/DCIM/101APPLE/IMG_1067.MOV NSFileHandle *fileReadHandle = [NSFileHandle fileHandleForReadingAtPath:fileP

我想通过使用NSURLSession(文件)上传一个大的AVAsset(超过500mb)。 首先,我需要复制一个avasset并将其写入临时路径

filePath = [(AVURLAsset *)avasset URL];
    // file:///var/mobile/Media/DCIM/101APPLE/IMG_1067.MOV

NSFileHandle *fileReadHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
NSData *data = [fileReadHandle readDataToEndOfFile];

// No longer using the file
[fileReadHandle closeFile];

NSFileHandle *fileWriteHandle = [NSFileHandle fileHandleForWritingAtPath:tempFile];

// add some header information for upload use        
[fileWriteHandle writeData:@"some information for upload"];

// Write in tempFile
[fileWriteHandle writeData:data];
[fileWriteHandle synchronizeFile];// Flush any data in memory to disk 

而且数据大小为0,为什么?

看不到fileWriteHandle是在哪里创建/初始化的。在任何情况下,检查数据是否真的被读取(即,非零)400meg对于在移动设备上一次性读取来说是相当大的一块。对不起,我刚刚粘贴了部分代码,更新了我的帖子。您知道如何使用fileHandle通过使用较小的块来编写文件吗?我知道[rep getBytes:chunkBuffer fromOffset:offset length:chunkSize错误:nil];但是现在我使用AVAsset,我不知道怎么做。。