iPhone動画カメラアプリは、撮ったファイルが自動で消えない
今作ってる動画カメラアプリですが、iTUNES Connectで申請まで終わって、やれやれ、ということで自分のiPhoneにローカルインストールして使っていたら、ストレージがいっぱいになったぞゴルァ!と怒られてしまいました。んなこたーないだろう!?とiPhoneのストレージ使用状況を見ると、何と私のカメラアプリが、数ギガにまで膨れ上がってるじゃないか!?ということで早速調べてみた。
このアプリは、明示的に「保存」しない限り、写真フォルダーに動画を保存しないつくりなのですが、それでも一時ファイルがどんどん残ってしまいます。なので消さないといけなかったのね。早速、申請を取り下げて修正をすることに。
//インスタンス変数として宣言 NSString *pathToVideo; //録画が終わったら起動されるメソッド - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSURL *videoURL = [info valueForKey:UIImagePickerControllerMediaURL]; pathToVideo = [videoURL path]; _videoURL = pathToVideo; //PickerControllerを閉じる [self dismissViewControllerAnimated:YES completion:nil]; // 取った画像の再生 NSURL *url = [info valueForKey:UIImagePickerControllerMediaURL]; playerItem = [[AVPlayerItem alloc] initWithURL:url]; [playerItem addObserver:self forKeyPath:@"status" options:0 context:&ItemStatusContext]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem]; player = [AVPlayer playerWithPlayerItem:playerItem]; [playerView setPlayer:player]; //再生開始 [player play]; } //必要なタイミングでこのメソッドを呼び出す -(void) deleteFile { //ここで録画したファイルを消す NSFileManager *fileManager = [NSFileManager defaultManager]; if ([fileManager fileExistsAtPath:pathToVideo]) { NSError *error; // Attempt to delete the folder containing globalDel.videoPath if ([fileManager removeItemAtPath:[pathToVideo stringByDeletingLastPathComponent] error:&error] != YES) { NSLog(@"Unable to delete file: %@", [error localizedDescription]); }else{ NSLog (@"消去成功"); } } else { NSLog (@"消去失敗"); } }