
我正试图从相机中获取照片.
@OverrIDepublic voID onCreate() { super.onCreate(); //androID.os.DeBUG.waitForDeBUGger(); myCamera=Camera.open(); SurfaceVIEw dummy=new SurfaceVIEw(getApplicationContext()); try { if(myCamera!=null) { myCamera.setPrevIEwdisplay(dummy.getHolder()); myCamera.setPrevIEwCallback(this); Log.i(TAG,"myCamera is not null"); } getFrames(); } catch (IOException e) { // Todo auto-generated catch block e.printstacktrace(); Log.e(TAG, "setPrevIEwdisplay " + e); } myCamera.startPrevIEw(); } public voID getFrames() { new Thread(new Runnable() { public voID run() { while(flag) { Log.i(TAG, "getFrames"); try{ //method(); takePicturenoprevIEw(); Thread.sleep(54); } catch (Exception e) { Log.e(TAG, "getFrames thread error: " + e); } } myCamera.release(); } }).start(); }public voID takePicturenoprevIEw(){ try{ Log.i(TAG,"takePicturenoprevIEw"); myCamera.takePicture(null, null, getJpegCallback()) } catch (Exception e) { Log.e(TAG, "takePicturenoprevIEw " + e); } private PictureCallback getJpegCallback(){ PictureCallback jpeg=new PictureCallback() { @OverrIDe public voID onPictureTaken(byte[] data, Camera camera) { try { Log.i(TAG,"getJpegCallback"); fileOutputStream(String.format("/sdcard/RealSpeaker/%d.jpg", System.currentTimeMillis())); fileOutputStream os = new fileOutputStream(String.format("/sdcard/Sample/%d.jpg", System.currentTimeMillis())); os.write(data); os.close(); } catch (IOException e) { //do something about it } } }; return jpeg; }问题是getJpegCallback方法不正确:(文件夹中没有日志和图像)ю
当我正在调试应用程序时,TAG-getJpegCallback不会显示在LogCat中,但是TAG takePicturenoprevIEw显示.关闭申请后,相机不允许(现在没问题).怎么了?
解决方法:
在开发EyeSpy时我遇到了这个问题.我想捕捉图像,即使应用程序在后台或前台也是如此.我试了几个星期但没有运气.使用相机拍摄照片意味着显示其预览.
From Document(5.和6.)您必须使用SurfaceView来显示预览.
当您关闭应用程序或您的应用程序进入后台时,SurfaceVIEw的表面将被销毁.这就是为什么我认为这是不可能的.
如果您发现任何其他方式,请在此处发布.
希望这能帮到你..
总结以上是内存溢出为你收集整理的在Android背景中使用相机全部内容,希望文章能够帮你解决在Android背景中使用相机所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)