私はアンドロイドで非常に新しく、アンドロイドcamera2 APIを使用してシンプルなビデオレコーダーアプリを作成しようとしています. YouTube のチュートリアルに従って、TextureView でカメラをプレビューし、MediaRecorder でキャプチャを開始することができましたが、レコーダーを停止してビデオをデバイス ストレージに保存するのに問題があります。
このエラーは MediaRecorder.stop() で表示されます
W/Adreno-EGLSUB: : デキュー ネイティブ バッファの失敗: そのようなデバイスはありません、バッファ = 0x0、ハンドル = 0x0 W/Adreno-EGL: : EGL_BAD_SURFACE E/CameraDeviceGLThread-0: GL レンダリング スレッドで例外を受け取りました: java.lang.IllegalStateException: swapBuffers: EGL エラー: Android.hardware.camera2.legacy.SurfaceTextureRenderer.checkEglError(SurfaceTextureRenderer.java:544) で 0x300d、android.hardware.camera2.legacy.SurfaceTextureRenderer.swapBuffers(SurfaceTextureRenderer.java:537) でandroid.hardware.camera2.legacy.GLThreadManager$1.handleMessage(GLThreadManager.java:105) android.os.Handler.dispatchMessage(Handler.java:98) で android.os.Looper.loop(Looper.java:148) で android.os.HandlerThread.run(HandlerThread.java:61) I/CameraDeviceState : レガシー カメラ サービスが状態 ERROR に移行中
Android 6.0 api23 デバイスを使用してアプリを実行しています。
ありがとう
EDIT : これが stopRecording 関数です。
try{
previewSession.stopRepeating();
previewSession.abortCaptures();
}catch(CameraAccessException e){
e.printStackTrace();
}
recorder.stop();
recorder.reset();
isRecording = false;
Toast.makeText(getApplicationContext(),"Recording Stopped",Toast.LENGTH_SHORT).show();
... @NewOneの答えに基づいて、recorder.stop()の前にtry catchを含めた後、新しいエラーが発生しました
--------- クラッシュの始まり E/AndroidRuntime: FATAL EXCEPTION: main Process: com.tingker.daryl.camera2, PID: 9014 Theme: themes:{default=overlay:com.cyngn.hexo, iconPack: com.cyngn.hexo、fontPkg:com.cyngn.hexo、com.android.systemui=overlay:com.cyngn.hexo、com.android.systemui.navbar=overlay:com.cyngn.hexo} java.lang.IllegalStateException:セッションが閉じられました。それ以上の変更は違法です。com.tingker.daryl.camera2.MainActivity$2. onClick(MainActivity.java:121) アンドロイドで。