2016-06-24 13 views
2

は、ビデオの録画中にデバイスの容量がほぼ満杯になった場合に通知を受ける方法です。iphoneのストレージがすぐにいっぱいになると、ビデオ録画を停止するにはどうすればいいですか?

私はAVCaptureMovieFileOutputを使用する場合は、記録のmaxRecordedFileSize を設定することができますが、私は、ビデオフレームをビデオファイルに格納される前に、いくつかのビデオ操作をしなければならないので、残念ながら、私は、これを使用傾けることがわかりました。

代わりにAVCaptureVideoDataOutputAVAssetWriterというアプローチを使用する必要があります。

ストレージがいっぱいになったときに通知する何らかのシステム通知を監視することはできますか?

答えて

1

あなたは

-(uint64_t)getFreeDiskspace{ 
    uint64_t totalSpace = 0.0f; 
    uint64_t totalFreeSpace = 0.0f; 
    NSError *error = nil; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; 

    if (dictionary) { 
     NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; 
     NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; 
     totalSpace = [fileSystemSizeInBytes floatValue]; 
     totalFreeSpace = [freeFileSystemSizeInBytes floatValue]; 
     NSLog(@"Memory Capacity of %llu MiB with %llu MiB Free memory available.", ((totalSpace/1024ll)/1024ll), ((totalFreeSpace/1024ll)/1024ll)); 
    } else { 
     NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %@", [error domain], [error description]); 
    } 

    return totalFreeSpace; 
} 

ディスクに空き領域を取得するには、次のコードを使用することができますし、

if([self getFreeDiskspace]>100.0){ 
    //The store 
}else{ 
    //Alert user 
} 

のように確認することができますが、それがお役に立てば幸いです。

+0

私は試してみて、テストが終わったら報告します。ありがとう –

関連する問題