Добавление функций масштабирования к сбоям камеры с Fatal Exception - PullRequest
1 голос
/ 12 января 2012

Привет, я пытаюсь сделать камеру с классами SurfaceView и Camera.Здесь все отлично работает, кроме функции масштабирования.Когда я нажимаю на масштабирование перед началом записи с использованием MediaRecorder, оно работает, но если я начинаю запись и нажимаю на масштабирование, происходит сбой.Вот мой кодКак мне добавить функцию увеличения к моей камере?Буду признателен за любую оказанную помощь.Благодарю.

Это мой код для smoothZoom,

 zoomControls.setOnZoomInClickListener(new OnClickListener() {

        public void onClick(View v) {

            try
            {
            currentZoomLevel++;
            myCamera.startSmoothZoom(currentZoomLevel);


            }catch(IllegalArgumentException e)
            {
                currentZoomLevel--;
                zoomControls.setIsZoomInEnabled(false);
            }
        }
    });


    Parameters parameters = myCamera.getParameters();
    parameters.setFlashMode(getFlashModeSetting());
    myCamera.setParameters(parameters);

    mediaRecorder = new MediaRecorder();
    myCamera.unlock();
    mediaRecorder.setCamera(myCamera);
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
    mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
    mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
    mediaRecorder.setOutputFile("/sdcard/myvideo.mp4");
    mediaRecorder.setPreviewDisplay(myCameraSurfaceView.getHolder().getSurface());

Вот мой логакт,

08-21 14:05:36.171: ERROR/AndroidRuntime(6426): FATAL EXCEPTION: main
08-21 14:05:36.171: ERROR/AndroidRuntime(6426): java.lang.RuntimeException: start smooth zoom failed
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at android.hardware.Camera.startSmoothZoom(Native Method)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at com.camvideocorder.CamVideoCorderActivity$2.onClick(CamVideoCorderActivity.java:95)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at android.view.View.performClick(View.java:2485)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at android.view.View$PerformClick.run(View.java:9089)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at android.os.Handler.handleCallback(Handler.java:587)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at android.os.Looper.loop(Looper.java:123)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at android.app.ActivityThread.main(ActivityThread.java:3806)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at java.lang.reflect.Method.invokeNative(Native Method)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at java.lang.reflect.Method.invoke(Method.java:507)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-21 14:05:36.171: ERROR/AndroidRuntime(6426):     at dalvik.system.NativeStart.main(Native Method)

1 Ответ

1 голос
/ 12 января 2012

Можете ли вы указать, какую версию Android вы используете? Увеличение при записи видео функция добавлена ​​только в Android 4.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...