質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

1182閲覧

Camera2APIで5秒動画の連続撮影をしたいのですが、何本か撮影したところで、急にエラーが発生します。

giant

総合スコア132

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

1クリップ

投稿2017/08/21 00:50

編集2017/08/21 07:35

Camera2APIで5秒動画の連続撮影をしたいのですが、何本か撮影したところで、急にエラーが発生します。

java

1 E/IMGSRV: :0: WSEGL_GetDrawableParameters: Failed to obtain minimal parameters 208-21 16:30:55.668 9972-10564/com.google.android.exoplayer2.demo E/IMGSRV: :0: KEGLGetDrawableParameters: Native window is invalid 308-21 16:30:55.668 9972-10564/com.google.android.exoplayer2.demo E/libEGL: eglMakeCurrent:800 error 300b (EGL_BAD_NATIVE_WINDOW) 408-21 16:30:55.668 9972-10564/com.google.android.exoplayer2.demo E/CameraDeviceGLThread-1: Received exception on GL render thread: 5 java.lang.IllegalStateException: makeCurrent: EGL error: 0x300b 6 at android.hardware.camera2.legacy.SurfaceTextureRenderer.checkEglError(SurfaceTextureRenderer.java:530) 7 at android.hardware.camera2.legacy.SurfaceTextureRenderer.makeCurrent(SurfaceTextureRenderer.java:518) 8 at android.hardware.camera2.legacy.SurfaceTextureRenderer.drawIntoSurfaces(SurfaceTextureRenderer.java:721) 9 at android.hardware.camera2.legacy.GLThreadManager$1.handleMessage(GLThreadManager.java:105) 10 at android.os.Handler.dispatchMessage(Handler.java:98) 11 at android.os.Looper.loop(Looper.java:148) 12 at android.os.HandlerThread.run(HandlerThread.java:61) 1308-21 16:30:55.673 9972-9972/com.google.android.exoplayer2.demo E/Camera2andPlayer: nullや onError 1408-21 16:30:55.701 9972-10525/com.google.android.exoplayer2.demo E/Camera2andPlayer: Video saved: /storage/emulated/0/Download/cameraMovie/1503300653646.mp4 1508-21 16:30:55.702 9972-10525/com.google.android.exoplayer2.demo E/CameraCaptureSession: Session 23: Exception while stopping repeating: 16 android.hardware.camera2.CameraAccessException: The camera device has encountered a serious error 17 at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError(CameraDeviceImpl.java:2012) 18 at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:925) 19 at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:378) 20 at com.google.android.exoplayer2.demo.Camera2andPlayerActivity.closePreviewSession(Camera2andPlayerActivity.java:829) 21 at com.google.android.exoplayer2.demo.Camera2andPlayerActivity.startPreview(Camera2andPlayerActivity.java:534) 22 at com.google.android.exoplayer2.demo.Camera2andPlayerActivity.stopRecordingVideo(Camera2andPlayerActivity.java:865) 23 at com.google.android.exoplayer2.demo.Camera2andPlayerActivity.access$600(Camera2andPlayerActivity.java:99) 24 at com.google.android.exoplayer2.demo.Camera2andPlayerActivity$4$2.run(Camera2andPlayerActivity.java:597) 25 at android.os.Handler.handleCallback(Handler.java:739) 26 at android.os.Handler.dispatchMessage(Handler.java:95) 27 at android.os.Looper.loop(Looper.java:148) 28 at android.os.HandlerThread.run(HandlerThread.java:61) 2908-21 16:30:59.658 9972-10561/com.google.android.exoplayer2.demo E/RequestThread-1: Timed out while waiting for request to complete. 3008-21 16:30:59.658 9972-10561/com.google.android.exoplayer2.demo E/CameraDeviceState: Cannot receive result while in state: 0 3108-21 16:30:59.658 9972-10561/com.google.android.exoplayer2.demo E/CameraDeviceState: Cannot receive result while in state: 0 3208-21 16:30:59.681 9972-10561/com.google.android.exoplayer2.demo E/CameraDeviceState: Cannot receive result while in state: 0 3308-21 16:30:59.682 9972-10561/com.google.android.exoplayer2.demo E/CameraDeviceState: Cannot call idle while in state: 0 34

フォルダに、何本かの動画は保存されています。本数は、時と場合によって変わります。
今回は、5秒かける6本撮影したところで、強制終了となりました。

イメージ説明
//続き
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yona

2017/08/21 01:48

ログは画像ではなく、テキストで質問に記載してください。
giant

2017/08/21 01:49

すぐ変更します
giant

2017/08/21 02:11

このようなサイトを参考にエラー対策を考えています。
guest

回答1

0

エラーログによるとCamera2andPlayerActivity.javaの506行目でヌル参照例外です。
エラーログが出ている場合はエラーログと該当箇所のコードを質問に載せてください。

おそらく、アウトオブメモリー例外を適切に処理せずになかったことにしていませんか?

投稿2017/08/21 02:35

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

giant

2017/08/21 02:41

ASUSのタブレットでは、このようなエラーが出るのですが、 Nexsus5Xでは、エラーなく、無限に動画撮影ができました。
giant

2017/08/21 02:41

コードも記載しました。よろしくお願いします。
yona

2017/08/21 02:58

端末によって結果が異なることが多々あります。 自分でデバッグをやりましょう。 質問はデバッグをやりきってからするべきです。 まずはデバッグ実行を行い、mCameraDeviceがいつnullになるかを探してください。
giant

2017/08/21 03:44

ありがとうございます。 private void closePreviewSession() { if (mPreviewSession != null) { mPreviewSession.close(); mPreviewSession = null; } } closePreviewSession()をエラーの起こる直前に呼び出していました。 これを呼び出したことで、mCameraDeviceがnullになるのでしょうか?
yona

2017/08/21 04:55

それは私にはわかりませんよ。 デバッグしているのはあなたです。 そこでmCameraDeviceがnullになっているんですか?
giant

2017/08/21 06:44 編集

はい、closePreviewSession()を呼び出した後に、 mCameraDevice がnullになります。 //ここからしたサイトから引用 mMediaRecorder.stop()anを呼び出した後、IllegalStateException常にスローされます。私が持つデバイスに気づいた変化の状態がエラーに、すぐに呼び出すことに。INFO_SUPPORTED_HARDWARE_LEVEL_LEGACYCameraDeviceonError()CameraDevice.StateCallback 参照したサンプルではonError()、カメラを閉じてアクティビティを終了しますのでonError()、次のようにカメラを再度開くように変更してください: @Override public void onError(CameraDevice cameraDevice, int error) { // mCameraOpenCloseLock.release(); // cameraDevice.close(); // mCameraDevice = null; // Activity activity = getActivity(); // if (null != activity) { // activity.finish(); // } closeCamera(); openCamera(mTextureView.getWidth(), mTextureView.getHeight()); } //上記コードはサイトから引用 このようにサイトで説明があったので、 // mCameraDevice = null; のようにコメントアウトすることにしました。 onErrorは、mMediaRecorder.stop()を呼び出した時に、呼ばれるようです。 nullpointerは出なくなったのですが、 新しいエラーが出ました。
giant

2017/08/21 07:38 編集

エラーコードを変更しました。調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問