1

我尝试在我的 Android 设备上同时打开相机和 LED。使用此示例:http: //developer.android.com/guide/topics/media/camera.html

这是我的代码:

mCamera = getCameraInstance();
    // Create our Preview view and set it as the content of our activity.
    mPreview = new CameraPreview(this, mCamera);
    FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
    preview.addView(mPreview);

    params = mCamera.getParameters();
    params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    mCamera.setParameters(params);
    mCamera.startPreview();

但是打开LED后,它工作1秒钟然后关闭。

4

2 回答 2

0

如果你注释掉//mCamera.startPreview();怎么办?你的手电筒能继续工作吗?这是我为使手电筒继续在我的设备上工作而实现的代码。您可以验证您的手电筒是否可以在您的设备上正常工作。

<uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

public class MainActivity extends Activity {
    private Button mSwitchButton = null;
    private Camera mCamera;
    private Camera.Parameters mParameters;
    private boolean mbTorchEnabled = false;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mSwitchButton = new Button(this);
        mSwitchButton.setText("switch");
        mSwitchButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                mParameters = mCamera.getParameters();

                List flashModes = mParameters.getSupportedFlashModes ();

                if(flashModes != null && flashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)){
                    if(mbTorchEnabled){
                        //Set the flash parameter to off
                        mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
                    }
                    else{
                        //Set the flash parameter to use the torch
                        mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
                    }

                    //Commit the camera parameters
                    mCamera.setParameters(mParameters);

                    mbTorchEnabled = !mbTorchEnabled;
                }
            }
        });

        setContentView(mSwitchButton);
    }

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        mCamera = Camera.open();
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        mCamera.release();
    }
}
于 2013-09-10T13:24:14.677 回答
0

检查此代码..我还没有尝试过..

代码

于 2013-09-10T09:52:16.113 回答