Why textureView shows black screen on my camera application in android API level 23? -


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