ios - Making video with overlay view in AVCaptureVideoPreviewLayer -


i'm trying capture video overlay view using avcapturevideopreviewlayer, video saving without overlay view. app setting object instead of face, works fine , able take images (see link below). capturing video issue.

https://i.stack.imgur.com/j5t15.jpg

cmformatdescriptionref formatdescriptionref = cmsamplebuffergetformatdescription(samplebuffer);

        const audiostreambasicdescription *audiostreambasicdescription = cmaudioformatdescriptiongetstreambasicdescription(fdesc);          _samplerate = audiostreambasicdescription -> msamplerate;         _audiochannel = audiostreambasicdescription -> mchannelsperframe;          nsdateformatter *dateformatter = [[nsdateformatter alloc] init];         dateformatter.dateformat = @"hh:mm:ss";         nsdate *currentdate = [nsdate datewithtimeintervalsince1970:[[nsdate date] timeintervalsince1970]];         nsstring *currentdatestring = [dateformatter stringfromdate:currentdate];         nsstring *videoname = [nsstring stringwithformat:@"video_%@.mp4", currentdatestring];         _videopath = [self.cachedirectorypath stringbyappendingpathcomponent:videoname];         _resolutionwidth  = 360;         _resolutionheight = 640;         _recordingwriter = [videorecordingwriter recordingwriterwithvideopath:_videopath                                                               resolutionwidth:_resolutionwidth resolutionheight:_resolutionheight                                                                  audiochannel:_audiochannel samplerate:_samplerate];          cmtime presentationtimestamp = cmsamplebuffergetpresentationtimestamp(samplebuffer);         if (_startrecordingcmtime.value == 0) {             _startrecordingcmtime = presentationtimestamp;         }          cmtime subtract = cmtimesubtract(presentationtimestamp, _startrecordingcmtime);         _currentrecordingtime = cmtimegetseconds(subtract);         if (_currentrecordingtime > _maxrecordingtime) {             if (_currentrecordingtime - _maxrecordingtime >= 0.1) {                 return;             }         }         [_recordingwriter writewithsamplebuffer:samplebuffer isvideo:yes];         dispatch_async(dispatch_get_main_queue(), ^{             [self updaterecordingprogress:_currentrecordingtime / _maxrecordingtime];         }); 

func startcapturing(view: skview, background: calayer, done: @escaping((_:calayer)->())) {     let device = getcamera()!      {         capturesession.beginconfiguration()          // set inputs         try capturesession.addinput(avcapturedeviceinput(device: device))          capturesession.sessionpreset = avcapturesessionpresethigh         previewlayer = avcapturevideopreviewlayer(session: capturesession)          if let previewlayer = previewlayer {             // add background             previewlayer.addsublayer(background)              // init preview             previewlayer.name = "camera"             previewlayer.frame.size = view.bounds.size             if is_debug {                 print("videoservice: size of previewlayer")                 print(previewlayer.frame.size)             }             previewlayer.position = cgpoint(                 x: view.frame.width/2, y: view.frame.height/2)             view.layer.addsublayer(previewlayer)             done(previewlayer)         }         capturesession.commitconfiguration()         capturesession.startrunning()          print("\n\nvideoservice: camera configured")     } catch {         print("error: start capturing failed")     } }  func getcapturesessionback() -> avcapturedevicediscoverysession {     session = session ?? avcapturedevicediscoverysession(         devicetypes: [devicetypebackcamera],         mediatype: avmediatypevideo,         position: position)     return session! }  func getcamera() -> avcapturedevice? {     device = device ?? getcapturesessionback().devices.first     return device } 

Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -