перенести CWAC-камеру на CWAC-cam2

Я реализовал cameraview (импорт com.commonsware.cwac.camera.CameraView) с CWAC-камерой, хочу переключиться на использование CWAC-Cam2, так как делаю эту миграцию, больше не нахожу CameraHost или CameraHostProvider. Как я могу использовать камеру CWAC-Cam2 в своем интерфейсе в своей деятельности.

Я не мог этого сделать :'(

извините за плохой английский, СПАСИБО!

поэтому я использую этот момент:

 import com.commonsware.cwac.camera.CameraHost;
import com.commonsware.cwac.camera.CameraHostProvider;
import com.commonsware.cwac.camera.CameraView;
import com.commonsware.cwac.camera.PictureTransaction;
import com.commonsware.cwac.camera.SimpleCameraHost;


public class MainActivity extends BaseActivity implements CameraHostProvider
        {


    @InjectView(R.id.cameraView)
    CameraView cameraView;


    @Override
    protected void onResume()
    {
        super.onResume();
        cameraView.onResume();
        //initCamera(varCamera,1);
    }



    @Override
    protected void onPause()
    {
             super.onPause();
             cameraView.onPause();
    }



            @Override
            public CameraHost getCameraHost() {

                return myCameraHost=new MyCameraHost(this);
            }

            class MyCameraHost extends SimpleCameraHost {

                private Camera.Size previewSize;

                public MyCameraHost(Context ctxt) {
                    super(ctxt);
                }

                @Override
                public boolean useFullBleedPreview() {
                    return true;
                }

                @Override
                public Camera.Size getPictureSize(PictureTransaction xact, Camera.Parameters parameters) {
                    return previewSize;
                }

                @Override
                public Camera.Parameters adjustPreviewParameters(Camera.Parameters parameters) {
                    Camera.Parameters parameters1 = super.adjustPreviewParameters(parameters);

                    previewSize = parameters1.getPreviewSize();
                    return parameters1;
                }

                @Override
                public void saveImage(PictureTransaction xact, final Bitmap bitmap) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            showTakenPicture(bitmap);
                        }
                    });
                }

                @Override
                public void saveImage(PictureTransaction xact, byte[] image) {
                    super.saveImage(xact, image);
                    photoPath = getPhotoPath();
                }
            }


            private void showTakenPicture(Bitmap bitmap) {
                vUpperPanel.showNext();
                vLowerPanel.showNext();
                newImage=bitmap;
                ivTakenPhoto.setImageBitmap(bitmap);
                updateState(STATE_SETUP_PHOTO);
            }

        }

person user2950950    schedule 29.08.2015    source источник


Ответы (1)


Я хочу перейти на использование CWAC-Cam2

Это не будет практичным, особенно в вашем случае.

CWAC-Cam2 предназначен для выполнения той же роли, которую, как я предполагал, будет выполнять CWAC-Camera: упростить использование API-интерфейсов камеры, а не зависеть от ненадежных реализаций ACTION_IMAGE_CAPTURE/ACTION_VIDEO_CAPTURE.

Однако API для CWAC-Cam2 совершенно отличается. Любой, кто использовал CameraView, как и вы, будет лучше работать с API-интерфейсами камеры напрямую.

API CWAC-Cam2 близок к тому, чтобы заменить ACTION_IMAGE_CAPTURE и ACTION_VIDEO_CAPTURE. Если вы работали с CameraFragment ранее, возможно, вы сможете без особых проблем перейти на CWAC-Cam2, хотя я в этом сомневаюсь.

person CommonsWare    schedule 29.08.2015