最近老大交給了一個任務,說是要在本地視頻端很夠調節網路攝影機焦距。
碰到了一些問題:
1.手機支不支援網路攝影機變焦
2.系統內建攝像軟體可以變焦,但是自己編寫的程式不支援變焦,
這個問題網上也有很多童鞋碰到了:
public void 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了。
這哥們和我遇到了同樣的問題,My Phone也是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了。