1. 程式人生 > >android Camera變焦的一個總結

android Camera變焦的一個總結

最近老大交給了一個任務,說是要在本地視訊端很夠調節攝像頭焦距。

碰到了一些問題:

1.手機支不支援攝像頭變焦

2.系統自帶攝像軟體可以變焦,但是自己編寫的程式不支援變焦,

這個問題網上也有很多童鞋碰到了:

publicvoid setZoomIn(){try{params= camera.getParameters();
        zoomValue +=5;params.setZoom(zoomValue);
        camera.setParameters(params);Log.d(TAG,"Is support Zoom "+params.isZoomSupported
());}catch(Exception e){         e.printStackTrace();}}
這段程式碼在Lg上可以執行,但是在htc sensation上crash了。

這哥們和我遇到了同樣的問題,我的手機也是htc sensation哦。

請問 android 相機 怎麼變焦啊:
我查了api2.2
說是呼叫這個函式就好了
mCamera.startSmoothZoom(zoom);
但是,呼叫了沒有任何反應!
然後,嘗試了:
mCamera.getParameters().setZoom(zoom);
也沒有任何反應
說是zoom改變會呼叫ZoomChangeListener,於是我加了監聽,但是監聽一直都未被呼叫過
mCamera.setZoomChangeListener();

其實問題比較簡單:

第一:呼叫mCamera.getParameters().isSmoothZoomSupported()返回為false,則不支援變焦,設定zoom出錯

第二:呼叫mCamera.getParameters().isZoomSupported()返回為true,mCamera.getParameters().isSmoothZoomSupported()返回為false,可能手機自帶的攝像應用支援zoom,變焦,只是我們自己的應用就不行了。這個問題,我現在也沒想到辦法解決。

所以在編寫變焦攝像,說著視訊的時候就使用isSmoothZoomSupported判斷,這樣就不會再其他不支援變焦的手機上crash了。