Service内でカメラを実行しています。Cameraのプレビューを描画しているTextureViewのgetBitmapを呼ぶと下記エラーが吐かれます。Service内でgetBitmapを呼ぶ方法はないでしょうか。
API levelが23のデバイスで実行すると、エラーがなく期待通りに動くのですが、API level 19のデバイスで実行するとエラーになります。
環境
Android 4.4.1 Kitkat (API lebel 19)
Camera APIは android.hardware.Cameraを使っています。
05-17 03:18:32.784 673-1889/? E/AndroidRuntime: FATAL EXCEPTION: CameraBackground Process: com.example.backgroundcamera, PID: 673 java.lang.IllegalStateException: Hardware acceleration can only be used with a single UI thread. Original thread: Thread[main,5,main] Current thread: Thread[CameraBackground,5,main] at android.view.HardwareRenderer$GlRenderer.checkRenderContext(HardwareRenderer.java:1750) at android.view.HardwareRenderer$GlRenderer.validate(HardwareRenderer.java:1369) at android.view.TextureView.getBitmap(TextureView.java:595) at android.view.TextureView.getBitmap(TextureView.java:561) at com.example.backgroundcamera.service.CameraService.classifyFrame(CameraService.java:197) at com.example.backgroundcamera.service.CameraService.access$300(CameraService.java:36) at com.example.backgroundcamera.service.CameraService$2.run(CameraService.java:181) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.os.HandlerThread.run(HandlerThread.java:61)
あなたの回答
tips
プレビュー