gpt4 book ai didi

video - 使用 AVFoundation 录制的视频可以直接写入 Assets 库吗?

转载 作者:行者123 更新时间:2023-12-03 22:02:36 25 4
gpt4 key购买 nike

我正在使用 AVFoundation 使用以下方法将视频录制到 NSTemporaryDirectory。

[[self movieFileOutput] startRecordingToOutputFileURL:[self outputFileURL] recordingDelegate:self];

录音停止后
[library writeVideoAtPathToSavedPhotosAlbum:outputFileURLcompletionBlock:^(NSURL *assetURL, NSError *error)`

方法被调用。

我注意到当视频从临时目录写入照片库时,它会保留在那里,直到保存完成。

这对我来说没有意义,因为它在保存视频时需要双倍的磁盘空间。例如,如果我录制一个小时长的 1080p 视频,录制结束时磁盘上的大小为 5GB,但在删除临时文件并释放磁盘空间之前保存到照片库时会增加到 10GB。

很想听听您对此的看法。

最佳答案

我认为,最好将视频暂时存储到文档目录中 .mp4 .

然后保存到Document-directory,保存后删除。

NSString *videoPath = [[self getDirectoryPath:[NSString stringWithUTF8String:currentRequest.fileName]] retain];

NSURL *videoPathURL = [NSURL URLWithString:videoPath];

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];

[library writeVideoAtPathToSavedPhotosAlbum:videoPathURL completionBlock:^(NSURL *assetURL, NSError *error) {

//Delete "videoPath" file from Document directory

}];


-(NSString *)getDirectoryPath:(NSString *)fileName {

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.mp4",fileName]];
return path;

}

关于video - 使用 AVFoundation 录制的视频可以直接写入 Assets 库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12927538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com