我试图在我的相机记录应用程序中的’s4 zoom’设备上处理ZoomIn / ZoomOut.因为它只支持常规缩放,即parameters.isZoomSupported()== true,parameters.isSmoothZoomSupported()== false,我使用了parameters.setZoom(mZoomVal); mCamera.setParameters(参数);照常.
问题是变焦是生涩,嘈杂而不平滑.
有没有人知道如何在’s4 zoom’中处理变焦速度,就像在三星相机应用程序中一样?
public boolean onKeyDown(int keyCode, KeyEvent event) { Log.v("onKeyDown keyCode="+keyCode+" event="+event.toString()); boolean handled = false; switch(keyCode){ case KeyEvent.KEYCODE_FOCUS: setautoFocus(); handled = true; break; case KeyEvent.KEYCODE_CAMERA: if(event.getRepeatCount() == 0){ if (isRec()) { stopRec(1, 0); } else { startRec(); } } handled = true; break; case 256: //KeyEvent.KEYCODE_CAMERA_ZOOM_RING_MOVE: handled = true; break; case 261: //KeyEvent.KEYCODE_CAMERA_ZOOM_RING_SPEED2 handled = true; break; case KeyEvent.KEYCODE_ZOOM_IN: setZoomIn(); //autoFocus(); handled = true; break; case KeyEvent.KEYCODE_ZOOM_OUT: setZoomOut(); //autoFocus(); handled = true; break; } if(handled) Log.v("onKeyDown HANDLED!"); else return super.onKeyDown(keyCode, event); return handled;}public int setZoomIn(){ if(mCamera == null){ return 0; } Parameters parameters = mCamera.getParameters(); List<Integer> zoom_List = parameters.getZoomratios(); if(mZoomVal >= mZoomMax) return zoom_List.get(mZoomMax); /* if(isautoFocusing){ mCamera.cancelautoFocus(); isautoFocusing = false; }*/ mZoomVaL++; isFocused = false; parameters.setZoom(mZoomVal); mCamera.setParameters(parameters); mZoomVal = parameters.getZoom(); return zoom_List.get(mZoomVal);}public int setZoomOut(){ if(mCamera == null){ return 0; } Parameters parameters = mCamera.getParameters(); List<Integer> zoom_List = parameters.getZoomratios(); if(mZoomVal <= 0) return zoom_List.get(0); /* if(isautoFocusing){ mCamera.cancelautoFocus(); isautoFocusing = false; }*/ mZoomVal--; isFocused = false; parameters.setZoom(mZoomVal); mCamera.setParameters(parameters); mZoomVal = parameters.getZoom(); return zoom_List.get(mZoomVal);}public voID setautoFocus(){ if(mCamera == null){ return; } if(isFocused) return; if(isautoFocusing){ mCamera.cancelautoFocus(); isautoFocusing = false; } isautoFocusing = true; mCamera.autoFocus(new Camera.autoFocusCallback() { @OverrIDe public voID onautoFocus(boolean success, Camera camera) { Log.v("onautoFocus success="+success); isautoFocusing = false; isFocused = success; } });}
解决方法:
我已经找到了三星S4 Zoom设备上快门控制快门镜头的解决方案.
在智能模式下设置设备:parameters.set(“mode”,“smart-auto”);
对于放大开始:parameters.set(“zoom-action”,“optical-tele-start”);
对于缩小开始:parameters.set(“zoom-action”,“optical-wIDe-start”);
对于缩放动作停止:parameters.set(“缩放动作”,“缩放停止”);
快门速度:parameters.set(“zoom-speed”,1); // 1,2,…
不要忘记在Camera实例中保存参数mCamera.setParameters(参数);
这在我的设备中工作正常,快门现在是沉默和平滑. 总结
以上是内存溢出为你收集整理的android – 三星s4变焦不支持平滑变焦isSmoothZoomSupported()== false全部内容,希望文章能够帮你解决android – 三星s4变焦不支持平滑变焦isSmoothZoomSupported()== false所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)