AVCaptureMovieFileOutput minFreeDiskSpaceLimit 不工作
AVCaptureMovieFileOutput minFreeDiskSpaceLimit not working
我试图阻止 AVCaptureSession 在没有足够磁盘 space 时添加 AVCaptureMovieFileOutput。我在 viewDidload 中使用以下代码进行测试:
let session = AVCaptureSession()
session.sessionPreset = AVCaptureSessionPresetHigh
let movieFileOutput = AVCaptureMovieFileOutput()
movieFileOutput.minFreeDiskSpaceLimit = 1024 * 1024 * 100 // 100 MB
movieFileOutput.maxRecordedDuration = CMTimeMakeWithSeconds(45, Int32(NSEC_PER_SEC)) // 45 sec
if (session.canAddOutput(movieFileOutput)) {
print("Output added")
session.addOutput(movieFileOutput)
} else {
print("Not enough disk space??")
}
但是函数 'canAddOutput' 总是 returns 为真。我正在真实设备上对其进行测试,只剩下 69.4 MB space。为什么不返回 false?
来自 AVCaptureOutput
头文件,在 minFreeDiskSpaceLimit
:
Specifies the minimum amount of free space, in bytes, required for recording to continue on a given volume.
错误是通过 captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:
委托方法报告的。
因此 minFreeDiskSpaceLimit
定义了 continued 记录的条件并且通过完成委托方法报告了错误这一事实向我表明您必须首先开始捕获会话使用它。
我试图阻止 AVCaptureSession 在没有足够磁盘 space 时添加 AVCaptureMovieFileOutput。我在 viewDidload 中使用以下代码进行测试:
let session = AVCaptureSession()
session.sessionPreset = AVCaptureSessionPresetHigh
let movieFileOutput = AVCaptureMovieFileOutput()
movieFileOutput.minFreeDiskSpaceLimit = 1024 * 1024 * 100 // 100 MB
movieFileOutput.maxRecordedDuration = CMTimeMakeWithSeconds(45, Int32(NSEC_PER_SEC)) // 45 sec
if (session.canAddOutput(movieFileOutput)) {
print("Output added")
session.addOutput(movieFileOutput)
} else {
print("Not enough disk space??")
}
但是函数 'canAddOutput' 总是 returns 为真。我正在真实设备上对其进行测试,只剩下 69.4 MB space。为什么不返回 false?
来自 AVCaptureOutput
头文件,在 minFreeDiskSpaceLimit
:
Specifies the minimum amount of free space, in bytes, required for recording to continue on a given volume.
错误是通过 captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:
委托方法报告的。
因此 minFreeDiskSpaceLimit
定义了 continued 记录的条件并且通过完成委托方法报告了错误这一事实向我表明您必须首先开始捕获会话使用它。