|  | @@ -46,7 +46,6 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
 | 
	
		
			
				|  |  |      static var firstOpenCamera : Bool = true
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      var currPlayTime : CMTime = .zero
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  |      fileprivate var timerr:Timer?
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      var writerlock = false
 | 
	
	
		
			
				|  | @@ -69,7 +68,8 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
 | 
	
		
			
				|  |  |          let group = DispatchGroup() //创建group
 | 
	
		
			
				|  |  |          return group
 | 
	
		
			
				|  |  |      }()
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +    var groupCount = 0
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      var avplayerTimeObserver: NSKeyValueObservation?
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      lazy var avplayer : AVPlayer = {
 | 
	
	
		
			
				|  | @@ -159,8 +159,11 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
 | 
	
		
			
				|  |  |              startRecord()
 | 
	
		
			
				|  |  |              DispatchQueue.main.asyncAfter(deadline: .now() + 0.3, execute: { [weak self] in
 | 
	
		
			
				|  |  |                  guard let wself = self else { return }
 | 
	
		
			
				|  |  | -                wself.gropQueue.leave()
 | 
	
		
			
				|  |  | -                wself.gropQueue.leave()
 | 
	
		
			
				|  |  | +                while wself.groupCount > 0{
 | 
	
		
			
				|  |  | +                    wself.gropQueue.leave()
 | 
	
		
			
				|  |  | +                    wself.groupCount -= 1
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  wself.endRecord()
 | 
	
		
			
				|  |  |              })
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -175,6 +178,10 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      override func startRecord(){
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        gropQueue.enter() // 录音
 | 
	
		
			
				|  |  | +        groupCount += 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          guard let movieWrite = movieWrite, !writerlock else {
 | 
	
		
			
				|  |  |              cShowHUB(superView: nil, msg: "option_fail_record".BFLocale)
 | 
	
		
			
				|  |  |              return
 | 
	
	
		
			
				|  | @@ -222,8 +229,9 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  |          RunLoop.current.add(timerr!, forMode: .common)
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  | -        gropQueue.enter() // 录音
 | 
	
		
			
				|  |  |          gropQueue.enter() // 录像
 | 
	
		
			
				|  |  | +        groupCount += 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          gropQueue.notify(queue: DispatchQueue.main) {[weak self] in
 | 
	
		
			
				|  |  |              guard let wself = self else { return }
 | 
	
		
			
				|  |  |              if BFRecordScreenCameraManager.firstOpenCamera{
 | 
	
	
		
			
				|  | @@ -366,7 +374,7 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      func resetThumbImg(){
 | 
	
		
			
				|  |  | -        videoModel.thumImgs?.removeAll()
 | 
	
		
			
				|  |  | +//        videoModel.thumImgs?.removeAll()
 | 
	
		
			
				|  |  |          let vidos = recordItem?.videoStickers
 | 
	
		
			
				|  |  |          var tmpThumbs = [UIImage]()
 | 
	
		
			
				|  |  |          vidos?.forEach({ mod in
 |