分类: Java
2011-11-11 16:17:50
项目中有用到相机功能,相关问题做个备忘记录。
1、启动提示:java.lang.runtimeException:setparameters failed.....
因为parameters.setPictureSize(320, 480)(设置分辨率)的参数有误,
如果不清楚分辨率可以却掉这句话,再运行就OK 了。
如果真的想看分辨率可以看logcat日志上面有写:getParameters(....)里面就是一些相关的参数。2、连续拍照,会出现异常:java.lang.RuntimeException:fail to connect to camera service。
首先,确认下权限:在AndroidManifest.xml文件中添加权限允许语句:
其次检查,有没有对camera进行释放,或者说系统有自动释放功能但是还没有被处理。可以通过手动释放:
- public void surfaceDestroyed(SurfaceHolder holder) {
- try {
- stopPreview();
- } catch (Exception e) {
- e.printStackTrace();
- }
- try {
- closeCamera();
- mSurfaceHolder = null;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
3、调用相机并指定相片路径,保存在/sdcard/下面。
- Intent ti = new Intent();
- ti.setAction("android.media.action.IMAGE_CAPTURE");
- File out = new File(Environment.getExternalStorageDirectory(), "ziyouku.jpg");
- Uri uri = Uri.fromFile(out);
- ti.putExtra(MediaStore.EXTRA_OUTPUT, uri);
- startActivityForResult(ti, 1);