動画撮影をしていて、撮影ファイル数が450本になったところでエラーが出ます。
対策としては
java
1 private void closePreviewSession() { 2 3 if(mPreviewBuilder!=null) { 4 mPreviewBuilder.removeTarget(previewSurface); 5 mPreviewBuilder = null; 6 previewSurface.release(); 7 previewSurface = null; 8 } 9 10 if(mPreviewSession!=null) { 11 try { 12 mPreviewSession.stopRepeating(); 13 mPreviewSession.abortCaptures(); 14 } catch (CameraAccessException e) { 15 e.printStackTrace(); 16 } 17 18 } 19 20 21 if (mPreviewSession != null) { 22 mPreviewSession.close(); 23 mPreviewSession = null; 24 } 25 }
や
java
1 private void closeCamera() { 2 try { 3 mCameraOpenCloseLock.acquire(); 4 5 if (null != mCameraDevice) { 6 mCameraDevice.close(); 7 mCameraDevice = null; 8 } 9 if (null != mMediaRecorder) { 10 11 Log.e(TAG,"test now Release"); 12 mMediaRecorder.release(); 13 mMediaRecorder = null; 14 } 15 } catch (InterruptedException e) { 16 throw new RuntimeException("Interrupted while trying to lock camera closing."); 17 } finally { 18 mCameraOpenCloseLock.release(); 19 } 20 }
これら上記の2つのメソッドを、動画の撮影フォルダの変更のつどつど呼び出しています。
しかし、450本の動画を取った後に、too many open files エラーが出ます。
エラーは調べつくしました。実験は50回はやっています。全て445回から453回以内に同じエラーが怒っています。どうぞよろしくお願いします。
自分の中では、原因はCGが呼ばれていないのかと思っています。ただnullをセットしているのでなぜ呼ばれないかが疑問です。
回答1件
あなたの回答
tips
プレビュー