首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快闪按钮崩溃android

快闪按钮崩溃android
EN

Stack Overflow用户
提问于 2015-05-05 12:34:20
回答 1查看 514关注 0票数 1

App在四种不同的设备上运行良好。但是客户端正面临着Xperia z2上闪存按钮的崩溃。

MainActivity

代码语言:javascript
复制
btnFlash.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View arg0)
            {
                Toast.makeText(context, "Flash is toggled", Toast.LENGTH_LONG).show();

                if(CameraPreview.isFlashOn)
                {
                    CameraPreview.FlashOff(camera);

                    CameraPreview.isFlashOn = false;
                }
                else
                {
                    CameraPreview.isFlashOn = true;

                    CameraPreview.FlashOn(camera);
                }
            }
        });

CameraPreview

代码语言:javascript
复制
  public static boolean isFlashOn =false; // 

  public static void FlashOn(Camera mCamera)
  {
        // Get Camera Params for customisation
        Camera.Parameters parameters = mCamera.getParameters();

        // Check Whether device supports AutoFlash, If you YES then set
        // AutoFlash
        List<String> flashModes = parameters.getSupportedFlashModes();

        if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
        {
            parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
        }
        else if (flashModes.contains(Parameters.FLASH_MODE_ON))
        {
            parameters.setFlashMode(Parameters.FLASH_MODE_ON);
        }
        mCamera.setParameters(parameters);
        mCamera.startPreview();
    }

    public static void FlashOff(Camera mCamera)
    {
        // Get Camera Params for customisation
        Camera.Parameters parameters = mCamera.getParameters();

        // Check Whether device supports AutoFlash, If you YES then set
        // AutoFlash
        List<String> flashModes = parameters.getSupportedFlashModes();
        if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
        {
            parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
        }
        mCamera.setParameters(parameters);
        mCamera.startPreview();
    }

坠机报告.

代码语言:javascript
复制
me_idx 0, stream type 9
W/ActivityManager(  973): Activity pause timeout for ActivityRecord{45328828 u0
aus.xray.cam/.MainActivity2 t153 f}
D/mm-camera-intf( 9138): mm_stream_read_msm_frame: VIDIOC_DQBUF buf_index 6, fra
me_idx 840, stream type 1
I/mm-camera(  473): mct_pipeline_process_set:command=8000013
I/mm-camera(  473): pproc_module_handle_reprocess_offline:1318 input buf fd 126
type 4 size 462848
D/mm-camera-intf( 9138): mm_stream_read_msm_frame: VIDIOC_DQBUF buf_index 0, fra
me_idx 0, stream type 9
D/CustomizationProcess( 3778): dismissCustomizationDialog:true
I/WindowManager(  973): Screen frozen for +307ms due to Window{44e24b48 u0 Statu
sBar}
D/mm-camera-intf( 9138): mm_stream_read_msm_frame: VIDIOC_DQBUF buf_index 0, fra
me_idx 841, stream type 1
I/mm-camera(  473): mct_pipeline_process_set:command=8000013
I/mm-camera(  473): pproc_module_handle_reprocess_offline:1318 input buf fd 120
type 4 size 462848
D/mm-camera-intf( 9138): mm_stream_read_msm_frame: VIDIOC_DQBUF buf_index 1, fra
me_idx 0, stream type 9
^C
C:\adb>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-12 10:33:27

应穆库的要求。我自己回答了。用于切换闪光灯

代码语言:javascript
复制
flashBtn.setOnClickListener(new OnClickListener()
{
    @Override
    public onClick(View view)
    {
        if(cameraView!=null)//cameraView is the CameraPreview.class
        {
            if(cameraView.isFlashOn() && isFlashRunning)
            {       
                cameraView.FlashOff(camera);

                isFlashRunning = false;                             
            }
            else
            {
                cameraView.FlashOn(camera); 

                isFlashRunning = true;  
            }
    }
});

、FlashOn和FlashOff方法是

代码语言:javascript
复制
public void FlashOn(Camera mCamera) throws RemoteException
    {   
        // Get Camera Params for customisation
        Camera.Parameters parameters = mCamera.getParameters();

        // Check Whether device supports AutoFlash, If you YES then set
        // AutoFlash
        List<String> flashModes = parameters.getSupportedFlashModes();

        if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
        {
            parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);

            isFlashOn = true;
        }
        else if (flashModes.contains(Parameters.FLASH_MODE_ON))
        {
            parameters.setFlashMode(Parameters.FLASH_MODE_ON);

            isFlashOn = true;
        }

        mCamera.setParameters(parameters);

        mCamera.startPreview();

        //mCamera.autoFocus(null);  // may be this is problem
    }



    public void FlashOff(Camera mCamera) throws RemoteException
    {
        // Get Camera Params for customisation
        Camera.Parameters parameters = mCamera.getParameters();

        // Check Whether device supports AutoFlash, If you YES then set
        // AutoFlash
        List<String> flashModes = parameters.getSupportedFlashModes();

        if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
        {
            parameters.setFlashMode(Parameters.FLASH_MODE_OFF);

            isFlashOn = false;
        }

        mCamera.setParameters(parameters);

        mCamera.startPreview();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30053090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档