【问题标题】:CWAC - do not capture image when flash mode is ON on s5CWAC - 在 s5 上打开闪光灯模式时不捕获图像
【发布时间】:2015-05-31 16:40:56
【问题描述】:

我正在使用CWAC 相机库来捕捉图像。在 s5 上将闪光灯模式设置为 ON setFlashMode(Parameters.FLASH_MODE_ON); 时,相机无法拍摄图像。

我也尝试过使用库提供的演示。只是出现了闪存,没有任何反应。对于后续的捕获操作,它会引发异常,堆栈跟踪正在使用演示:

3-25 16:11:23.058  23419-23419/com.commonsware.cwac.camera.demo E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.commonsware.cwac.camera.demo, PID: 23419
java.lang.IllegalStateException: Preview mode must have started before you can take a picture
        at com.commonsware.cwac.camera.CameraView.takePicture(CameraView.java:331)
        at com.commonsware.cwac.camera.CameraFragment.takePicture(CameraFragment.java:162)
        at com.commonsware.cwac.camera.demo.DemoCameraFragment.takeSimplePicture(DemoCameraFragment.java:242)
        at com.commonsware.cwac.camera.demo.DemoCameraFragment.onOptionsItemSelected(DemoCameraFragment.java:129)
        at android.app.Fragment.performOptionsItemSelected(Fragment.java:1806)
        at android.app.FragmentManagerImpl.dispatchOptionsItemSelected(FragmentManager.java:1978)
        at android.app.Activity.onMenuItemSelected(Activity.java:2711)
        at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:1094)
        at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
        at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
        at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
        at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:645)
        at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:210)
        at android.view.View.performClick(View.java:4637)
        at android.view.View$PerformClick.run(View.java:19422)
        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.app.ActivityThread.main(ActivityThread.java:5586)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
        at dalvik.system.NativeStart.main(Native Method)

如何解决这个问题?

onPictureTaken(byte[] data, Camera camera)

PictureTransactionCallback 中的一个在这种情况下不会被调用。

设备:三星 Galaxy S5,安卓 4.4.2

谢谢:-)

【问题讨论】:

  • 使用此信息在项目的问题跟踪器中提交问题。还包括确切设备型号(例如,Build.PRODUCT 输出),因为“Samsung Galaxy S5”指的是多个型号。还包括确切步骤以使用演示应用程序重现此内容。请注意,IIRC 演示应用程序不会调用 setFlashMode(Parameters.FLASH_MODE_ON);
  • @CommonsWare 谢谢,我将提出有关步骤和设备详细信息的问题。

标签: android camera cwac-camera


【解决方案1】:

这也发生在我身上。原因是因为我提供了一个 SimpleCameraHost,它覆盖了 useSingleShotMode 方法,它总是返回 true。

我只是将其返回为 false,然后我再也看不到这个问题了。

    @Override
    public boolean useSingleShotMode() {
        return false;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    相关资源
    最近更新 更多