在Android背景中使用相机

在Android背景中使用相机,第1张

概述我正试图从相机中获取照片.@OverridepublicvoidonCreate(){super.onCreate();//android.os.Debug.waitForDebugger();myCamera=Camera.open();SurfaceViewdummy=newSurfaceView(getApplicationContext());try{if(myCamera!=null)

我正试图从相机中获取照片.

@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背景中使用相机所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1096394.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存