android Camera變焦的一個總結
阿新 • • 發佈:2019-01-07
最近老大交給了一個任務,說是要在本地視訊端很夠調節攝像頭焦距。
碰到了一些問題:
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了。