i'm developing camera application using textureview
class.
but black screen shown when mainactivity
created.
i have checked source codes on github, have same problem.
//mainactivity private capturefragment mcapturefragment; @override protected void oncreate(bundle savedinstancestate) { //... mcapturefragment = capturefragment.newinstance(); getfragmentmanager().begintransaction() .replace(r.id.recordvideocontent, mcapturefragment) .commit(); //... } //capturefragment class public class capturefragment fragment { private autofittextureview mcameralayout; } @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); } @override public void onviewcreated(view view, bundle savedinstancestate) { super.onviewcreated(view, savedinstancestate); mcameralayout = (autofittextureview) view.findviewbyid(gettextureresource()); } @override public void onresume() { super.onresume(); if (mcameralayout.isavailable()) { opencamera(mcameralayout.getwidth(), mcameralayout.getheight()); } else { mcameralayout.setsurfacetexturelistener(msurfacetexturelistener); } } private textureview.surfacetexturelistener msurfacetexturelistener = new textureview.surfacetexturelistener() { @override public void onsurfacetextureavailable(surfacetexture surface, int width, int height) { opencamera(width, height); } @override public void onsurfacetexturesizechanged(surfacetexture surface, int width, int height) { configuretransform(width, height); } @override public boolean onsurfacetexturedestroyed(surfacetexture surface) { return true; } @override public void onsurfacetextureupdated(surfacetexture surface) { log.d("surfacetextureupdated", ""); } }; private void opencamera(int width, int height, int mode) { if (!camerautil.haspermissionsgranted(getactivity(), camera2permissiondialog.video_permissions)) { requestvideopermissions(); return; } cameramanager cameramanager = (cameramanager) activity.getsystemservice(context.camera_service); try { } catch() { //... cameramanager.opencamera(cameraid, mstatecallback, null); //... } } private cameradevice.statecallback mstatecallback = new cameradevice.statecallback() { @override public void onopened(@nonnull cameradevice camera) { mcameradevice = camera; startpreview(); mcameraopencloselock.release(); if (null != mcameralayout) { configuretransform(mcameralayout.getwidth(), mcameralayout.getheight()); } } @override public void ondisconnected(@nonnull cameradevice camera) { mcameraopencloselock.release(); camera.close(); mcameradevice = null; } @override public void onerror(@nonnull cameradevice camera, int error) { mcameraopencloselock.release(); camera.close(); mcameradevice = null; activity activity = getactivity(); if (null != activity) { activity.finish(); } } };
Comments
Post a Comment