永发信息网

Android开发(摄像头的调用)(大神请进……)

答案:6  悬赏:60  手机版
解决时间 2021-11-24 12:47
Android开发(摄像头的调用)(大神请进……)
最佳答案
找到surficeView
surfaceView = (SurfaceView)findViewById(R.id.surfaceview);
设置它的像素为800x600
surfaceView.getHolder().setFixedSize(800,480);
//下面设置surfaceView不维护自己的缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前
surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
然后就是回调
surfaceView.getHolder().addCallback(newSurfaceCallback());
上面的回调类是我们自己定义的,代码如下
private class SurfaceCallback implementsSurfaceHolder.Callback{
@Override
public void surfaceCreated(SurfaceHolderholder) {
try {
camera = Camera.open();//打开硬件摄像头,这里导包得时候一定要注意是android.hardware.Camera
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);//得到窗口管理器
Display display = wm.getDefaultDisplay();//得到当前屏幕
Camera.Parameters parameters =camera.getParameters();//得到摄像头的参数
parameters.setPreviewSize(display.getWidth(),display.getHeight());//设置预览照片的大小
parameters.setPreviewFrameRate(3);//设置每秒3帧
parameters.setPictureFormat(PixelFormat.JPEG);//设置照片的格式
parameters.setJpegQuality(85);//设置照片的质量
parameters.setPictureSize(display.getHeight(),display.getWidth());//设置照片的大小,默认是和屏幕一样大
camera.setParameters(parameters);
camera.setPreviewDisplay(surfaceView.getHolder());//通过SurfaceView显示取景画面
camera.startPreview();//开始预览
isPreview = true;//设置是否预览参数为真
} catch (IOException e) {
Log.e(TAG, e.toString());
}
}

@Override
public void surfaceChanged(SurfaceHolderholder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolderholder) {
if(camera!=null){
if(isPreview){//如果正在预览
camera.stopPreview();
camera.release();
}
}
}
}
貌似也可以用activity的生命周期来实现,具体我也不是很清楚,你去网上找找吧!
全部回答

可能是不当的调用camera.lock()和camera.unlock()导致的

参考Android 录制视频 Camera占用的解决方法

camera.stopPreview();
首先要确认一下你是否是在做条码或二维码扫描
其次确认一下你是否使用了SurfaceView
最后你可以去Android官网搜一下SurfaceView的简单使用追问是关于二维码的扫描
用了surfaceview控件,
你知道具体怎么操作吗,也就是怎么关闭摄像头吧,这个有点!……
打开摄像头,要 start surfaceiew,当activity执行到onStop()时,要判断,然后关闭surfaceiew。这样应该就不会导致程序force close了。或者楼主您直接把force close的log信息打出来,有log才能准确的分析问题。追问

能说具体点吗?我不知道怎么关闭,上图,我是这样关闭的……


里面的被我注释掉了,不注释的话,就会结束程序的,这个改怎么写,mCamera是Camera摄像头,我直接把摄像头关闭,这个是不是有问题 ,还望请教……

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
无主之地2 每次退出都要从打
语言是沟通的桥梁排比句
知己知彼百战不殆说明了孙武什么观点
沁水哪里修电脑好,不坑人的,在线等
234÷41列竖式计算
李玲酒水商店地址在哪,我要去那里办事,
十个点的铅锌矿能卖多少钱一吨
K-1规则更接近什么流派?踢拳?泰拳?
iphone 7p升级 ios11 卡吗
我的SONY电视机中人物边缘有绿边,图像不稳定
为什么和合术找丘谷道长
我想问下500w的加热棒多少时间能把水加热到20
我闺蜜今天离婚了?我应该怎么安慰她!
我有一辆幻速H3F车,谁能帮我出出主意看业余
北京分段计费公交刷卡刷零是怎么回事
推荐资讯
我买的显示器是aoc i2481fxh。为什么鲁大师检
DE开头的单词
大家,那个桃树花芽是怎么看的
【23.75加一又二十分之一减二又五分之四】除
有银行黑点怎么办
卫生间墙上离地两米五高的地方留个洞是干嘛用
52岁女士参加晚辈的婚礼穿什么颜色搭配
金正老人看戏机收音机保存的频道怎删除
一个圈里一个A是什么牌子的车啊,像图里那样
30道SQL判断题
蟑螂是怎么来的为什么一个新房子都会长出蟑螂
数值方法里的一题 已知f(10)=100,f(11)=121,f
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?