0

以下のコードを使用して前面カメラを開こうとすると、camerapreview クラスの surfaceview でカメラがプレビューされません。何が問題ですか?

swicthToFrontCamera.setOnClickListener(new View.OnClickListener() {
    @TargetApi(Build.VERSION_CODES.GINGERBREAD)
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        // Camera.g
        mCamera.stopPreview();
        mCamera.release();

        // Camera getFrontFacingCamera() throws NoSuchElementException {
        Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
        for (int cameraIndex = 0; cameraIndex < Camera
                .getNumberOfCameras(); cameraIndex++) {
            Camera.getCameraInfo(cameraIndex, cameraInfo);
            if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
                try {
                    Camera.open(cameraIndex);
                    //mCamera.setPreviewDisplay(mCameraPreview);
                    mCamera.startPreview();
                } catch (RuntimeException e) {
                    e.printStackTrace();
                }
            }
        }


    }
}); 
4

2 に答える 2

0

surfaceview と surface holder を使用する必要があります。 start preview を呼び出すだけでは、カメラのプレビューは開始されません。まず、surfacview を使用して、xml でそのプレビューを表示する場所を設定する必要があります。

このドキュメントこれをチェックして、サーフェスビューを使用してプレビューを表示する方法の詳細を確認してください

于 2014-07-26T14:31:53.733 に答える