android camera.open失败的问题

enjack_droid 2014-11-25 05:48:09
首先,相机没有被占用,不存在release的问题
也不是2.3版本open需要带参数的问题


**问题1:**
我在button的监听里open,提示“fail to connect to camera service”
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
Log.i("", "tack picture clicked");
Camera camera = Camera.open();
}
});

如果我新建MySurfaceView继承SurfaceView类,并且实现SurfaceHolder.Callback,然后在surfaceCreated调用Camera.open就不会出错,然后得到一个相机实例一定呀在surfaceCreated里吗?


**问题2:**
如果我在MySurfaceView类里获取SurfaceHolder是通过this.getHolder(),则Camera.open没有问题;如果是在XML里声明一个SurfaceView控件,然后获取控件指针传递到MySurfaceView,再通过这个指针getHolder(),那么open的时候也会出现上述错误,why?
@SuppressWarnings("deprecation")
public void cameraInit(SurfaceView surfaceView){
mSurfaceHolder = surfaceView.getHolder();
//mSurfaceHolder = this.getHolder();
if(null!=mSurfaceHolder){
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
}

@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
Log.i(TAG, "changed");
if(null!=mCamera)
{
Camera.Parameters params = mCamera.getParameters();
params.setPictureFormat(PixelFormat.JPEG);
params.setPreviewSize(arg2,arg3);//arg2--width, arg3--height
mCamera.setParameters(params);
mCamera.startPreview();
}
}

@Override
public void surfaceCreated(SurfaceHolder arg0) {
Log.i(TAG, "create");
if(null==mCamera){
mCamera = Camera.open();
try {
mCamera.setPreviewDisplay(mSurfaceHolder);
} catch (IOException e) {
e.printStackTrace();
}
}

}
...全文
3842 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nnbnbn1 2015-12-01
  • 打赏
  • 举报
回复
new Handler().postDelayed(new Runnable() { @Override public void run() { startRecode(); } }, 1000);
媒体盒子 2014-11-26
  • 打赏
  • 举报
回复
相机Open前要设置surface ,这个surface就是底层用来渲染预览画面的,如果surface 都没有create ,底层将无法渲染,我想这就是为什么open不了的原因吧
Android Camera开发入门:目录 第一篇: 前景  一、Android Camera开发前景;      1)camera相关应用的领域      2)相关岗位介绍;      3)市场招聘介绍;      4)发展前景介绍;  二、学习这门课的重要性;      1)适合的人群;      2)熟悉和了解Android Camera 应用开发流程的重要性 第二篇: 开发环境安装  一、jdk、sdk的配置;  二、android studio的安装介绍;  三、adb命令的使用; 第三篇: Camera 常用api和最新框架介绍  一、android camera api介绍      1)camera1、camera2 区别;      2)camera 1、camera2 常用api介绍;      3)android camerax;  二、android camera最新框架介绍 第四篇:Camera api1实现预览、拍照、录像功能  一、预览  二、拍照  三、录像  四、获取实时预览流 第五篇: Camera2相机 打开功能实现第六篇: Camera2相机 预览功能实现  1)surfaceview、textureview 第七篇: Camera2相机 拍照功能实现 1)单拍; 第八篇:Camera2相机 录像功能实现1)正常录像 第九篇:Camera2预览方向、拍照方向设置     1) 预览变形问题如何处理? 第十篇:YUV流处理  1)如何获取实时预览流?  2)  思考:双码流方案如何实现?一边本地录像,一边后台推流 第十一篇:dumpsys media.camera 第十二篇:Camera2 Zoom变焦第十三篇:人脸识别(android 原生 & 三方人脸识别算法)第十四篇:Uvc UsbCamera第十五篇:Android Camera2拍摄RAW图第十六篇: Android Camera2同时打开前后摄 并 录像第十七篇: Android Camera2 视频慢动作  附:1)提供android开发相关资源      软件工具、Android相关学习书籍、学习相关网站博客等链接2)提供课程讲解中设计到的App 源码    * Camera API1使用源码    * Camera API2使用源码    * 调用三方算法人脸识别源码    *  录像慢动作源码    * Uvc UsbCamera相关源码3)课件

80,356

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧