2012-01-12 83 views
1

嗨我想用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()); 

這裏是我的logact,

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) 
+0

你可以添加logCat到你的問題嗎? – SERPRO 2012-01-12 11:05:05

+0

我已經添加了logcat錯誤日誌 – 2012-01-12 11:06:12

回答

1

,您可以指定使用的Android版本?錄製視頻功能時的縮放僅在Android 4.0中添加。

+0

丫,我試圖在2.3 :( – 2012-01-12 11:44:06

+0

然後我不認爲這是可能的。在2.3的相機應用程序沒有此功能。請檢查此鏈接[鏈接] http:///www.addictivetips.com/mobile/whats-new-in-android-4-0-ice-cream-sandwich-feature-review/。 – user936414 2012-01-12 11:53:44

+0

@ user936414那麼我的HTC如何在2.3.5上運行時呢? ? – 2012-05-23 07:56:29