6.AVCaptureDevice拍照与短视频

2020-11-04  本文已影响0人  bytebytebyte
UIControlEventTouchDown];

    [self.takeButton addTarget:self action:@selector(endAction:) forControlEvents:UIControlEventTouchUpInside];


#pragma mark 视频时间少于10s松开发送
-(void)endAction:(UIButton *)sender
{
    
    AVCaptureStillImageOutput *stillImageOutput = [[AVCaptureStillImageOutput alloc]init];
    NSDictionary *outputSettings = [[NSDictionary alloc] initWithObjectsAndKeys:AVVideoCodecJPEG, AVVideoCodecKey, nil];
    
    [stillImageOutput setOutputSettings:outputSettings];
    
    
    
    if ([self.captureSession canAddInput:self.captureDeviceInput]) {
        
        [self.captureSession addInput:self.captureDeviceInput];
        
    }
    
    
    
    if ([self.captureSession canAddOutput:stillImageOutput]) {
        
        [self.captureSession addOutput:stillImageOutput];
        
    }
    
    AVCaptureConnection *videoConnection = [stillImageOutput connectionWithMediaType:AVMediaTypeVideo];
    
    if (!videoConnection) {
        
        return;
        
    }
    [stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) {
        
        if (imageDataSampleBuffer == NULL) {
            
            return;
            
        }
        
        
        
        NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
        
        UIImage *image = [UIImage imageWithData:imageData];
        
        NSLog(@"image size = %@", NSStringFromCGSize(image.size));
        
        
        
        UIImageView *imageV = [[UIImageView alloc]initWithFrame:(CGRectMake(100, 100, 200, 400))];
        imageV.image = image;
        imageV.backgroundColor = [UIColor lightGrayColor];
        [self.view addSubview:imageV];
        
    }];
}



上一篇 下一篇

猜你喜欢

热点阅读