我有这段代码可以用 AVFoundation 录制视频,但我不知道如何转换为 Swift
- (void)startRecording
{
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd-HH-mm-ss"];
NSString* dateTimePrefix = [formatter stringFromDate:[NSDate date]];
int fileNamePostfix = 0;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = nil;
do
filePath =[NSString stringWithFormat:@"/%@/%@-%i.mp4", documentsDirectory, dateTimePrefix, fileNamePostfix++];
while ([[NSFileManager defaultManager] fileExistsAtPath:filePath]);
NSURL *fileURL = [NSURL URLWithString:[@"file://" stringByAppendingString:filePath]];
[self.fileOutput startRecordingToOutputFileURL:fileURL recordingDelegate:self];
}
我不知道如何在 Swift 中使用此路径..
谢谢!!
最佳答案
这是获取文档目录的方法
// NSArray *paths = NSSearchPathForDirectoriesInDomains(
// NSDocumentDirectory, NSUserDomainMask, YES);
let paths = NSSearchPathForDirectoriesInDomains(
.DocumentDirectory, .UserDomainMask, true)
// NSString *documentsDirectory = [paths objectAtIndex:0];
let documentsDirectory = paths[0] as String
下面是如何使用后缀选择文件名
var filePath:String? = nil
var fileNamePostfix = 0
do {
// filePath =[NSString stringWithFormat:@"/%@/%@-%i.mp4",
// documentsDirectory, dateTimePrefix, fileNamePostfix++];
filePath =
"\(documentsDirectory)/\(dateTimePrefix)-\(fileNamePostfix++).mp4"
} while (NSFileManager.defaultManager().fileExistsAtPath(filePath))
此代码只是您代码的直接移植,只是我删除了 documentsDirectory
之前的 /
,因为它已经是一个绝对路径。
关于path - 如何使用 Swift 的文件路径 API 获取文档目录并创建文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24365001/