android - "Surface" tag errors in LogCat -
i have been getting set of specific errors when developing basic camera application. code identical on android website.
the galaxy sii phone giving me error appears follows in logcat console:
06-28 16:28:40.098: e/surface(1650): surface::init token -2 identity 18
the number follows "identity" changes (42, 38, etc) error persists.
i think may related following class, still unsure meaning:
public class camerapreview extends surfaceview implements surfaceholder.callback
what galaxy sii might cause error? testing on htc vivid , pantech burst. fear may leading larger problems. trying understand error may about.
here source:
package com.basicam.android; import android.app.activity; import android.content.context; import android.content.pm.activityinfo; import android.content.pm.packagemanager; import android.hardware.camera; import android.os.build; import android.os.bundle; import android.util.log; import android.view.surfaceholder; import android.view.surfaceview; import android.widget.toast; public class camactivity extends activity { private surfaceview preview=null; private surfaceholder previewholder=null; private camera camera=null; private boolean inpreview=false; private boolean cameraconfigured=false; @override public void oncreate(bundle savedinstancestate) { log.d("crap","oncreated"); super.oncreate(savedinstancestate); setcontentview(r.layout.main); preview=(surfaceview)findviewbyid(r.id.preview); previewholder=preview.getholder(); previewholder.addcallback(surfacecallback); previewholder.settype(surfaceholder.surface_type_push_buffers); } @override public void onresume() { super.onresume(); camera=camera.open(); startpreview(); } @override public void onpause() { if (inpreview) { camera.stoppreview(); } camera.release(); camera=null; inpreview=false; super.onpause(); } private camera.size getbestpreviewsize(int width, int height, camera cam) { camera.size result=null; log.d("crap", "can haz preview sizes?"); int = 0; (camera.size size : cam.getparameters().getsupportedpicturesizes()) { log.d("sizew", ""+size.width); if (size.width<=width && size.height<=height) { log.d("sizew", ""+size.width); log.d("sizeh", ""+size.height); if (result==null) { result=size; } else { int resultarea=result.width*result.height; int newarea=size.width*size.height; if (newarea>resultarea) { result=size; } } } } return(result); } private void initpreview(int width, int height) { if (camera!=null && previewholder.getsurface()!=null) { try { camera.setpreviewdisplay(previewholder); } catch (throwable t) { log.e("previewdemo-surfacecallback", "exception in setpreviewdisplay()", t); } if (!cameraconfigured) { camera.parameters parameters=camera.getparameters(); camera.size size=getbestpreviewsize(width, height, camera); if (size!=null) { parameters.setpreviewsize(size.width, size.height); camera.setparameters(parameters); cameraconfigured=true; } } } } private void startpreview() { if (cameraconfigured && camera!=null) { camera.startpreview(); inpreview=true; } } surfaceholder.callback surfacecallback=new surfaceholder.callback() { public void surfacecreated(surfaceholder holder) { // no-op -- wait until surfacechanged() } public void surfacechanged(surfaceholder holder, int format, int width, int height) { initpreview(width, height); startpreview(); } public void surfacedestroyed(surfaceholder holder) { // no-op } }; }
Comments
Post a Comment