2016-01-09 16 views
1

我試圖防止AVCaptureSession添加一個AVCaptureMovieFileOutput當沒有足夠的磁盤空間。我在viewDidload裏面使用下面的代碼進行測試:AVCaptureMovieFileOutput minFreeDiskSpaceLimit不工作

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'總是返回true。我正在真實設備上測試它,只剩下69.4 MB空間。爲什麼它不會返回false?

回答

0

AVCaptureOutput頭文件,上minFreeDiskSpaceLimit

指定的空閒空間的最小量,以字節爲單位,需要用於記錄以繼續一個給定的體積。

錯誤通過captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:委託方法報告。

因此,minFreeDiskSpaceLimit定義條件的事實繼續錄製並通過完成委託方法報告錯誤,這表明您必須先啓動捕獲會話才能使用它。

相關問題