日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS自定义相机

發布時間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS自定义相机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.方法一:截屏:

WYPCustomCameraVC:

// // WYPCustomCameraVC.h // RockUnion // // Created by 王彥平 on 2021/12/28. // Copyright ? 2021 王彥平. All rights reserved. //#import "WYPBaseVC.h" #import "WYPCustomCameraView.h"NS_ASSUME_NONNULL_BEGIN@protocol PopCameraControllerDelegate <NSObject>-(void)popControllerWithImage:(UIImage *)image;@end @interface WYPCustomCameraVC : WYPBaseVC@property (nonatomic, weak) id<PopCameraControllerDelegate>delegate;//0身份證正面//1身份證反面//2銀行卡 @property (nonatomic, assign) WYPCameraActionType cameraType;@endNS_ASSUME_NONNULL_END// // WYPCustomCameraVC.m // RockUnion // // Created by 王彥平 on 2021/12/28. // Copyright ? 2021 王彥平. All rights reserved. //#import "WYPCustomCameraVC.h" #import <AVFoundation/AVFoundation.h>@interface WYPCustomCameraVC ()<AVCaptureMetadataOutputObjectsDelegate,UIAlertViewDelegate>@property (nonatomic, strong) WYPCustomCameraView *cameraView;@property (nonatomic, strong)UIImageView *preView;//捕獲設備,通常是前置攝像頭,后置攝像頭,麥克風(音頻輸入) @property(nonatomic)AVCaptureDevice *device;//AVCaptureDeviceInput 代表輸入設備,他使用AVCaptureDevice 來初始化 @property(nonatomic)AVCaptureDeviceInput *input;//當啟動攝像頭開始捕獲輸入 @property(nonatomic)AVCaptureMetadataOutput *output;@property (nonatomic)AVCaptureStillImageOutput *ImageOutPut;//session:由他把輸入輸出結合在一起,并開始啟動捕獲設備(攝像頭) @property(nonatomic)AVCaptureSession *session;//圖像預覽層,實時顯示捕獲的圖像 @property(nonatomic)AVCaptureVideoPreviewLayer *previewLayer;@property (nonatomic)BOOL isflashOn; @property (nonatomic)UIImage *image; @property (nonatomic)UIImageView *imageView; @property (nonatomic)BOOL canCa;@end@implementation WYPCustomCameraVC#pragma mark - lazy -(WYPCustomCameraView *)cameraView{if (!_cameraView) {_cameraView = [WYPCustomCameraView WYPCustomCameraView];WS(weakSelf);_cameraView.btnBlock = ^(NSInteger tag) {[weakSelf cameraViewBtnClickedWithTag:tag];};}return _cameraView; }- (void)viewDidLoad {[super viewDidLoad];_canCa = [self canUserCamear];if (_canCa) {[self customCamera];[self setUI];}else{return;}}-(void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];[self setNav]; }//設置狀態欄 -(void)setNav{// 設置狀態欄[Tools setStatusBarBackgroundColor:[UIColor clearColor]];self.navigationController.navigationBar.hidden = YES;[UIApplication sharedApplication].statusBarHidden = YES; }//設置UI -(void)setUI{self.cameraView.cameraType = self.cameraType;self.view.backgroundColor = [UIColor clearColor];self.cameraView.frame = self.view.bounds;[self.view addSubview:self.cameraView];}#pragma mark - 按鈕點擊事件 -(void)cameraViewBtnClickedWithTag:(NSInteger)tag{switch (tag) {case 0:{//返回按鈕點擊事件[self.navigationController popViewControllerAnimated:YES];}break;case 1:{//電燈按鈕點擊事件}break;case 2:{//拍照按鈕點擊事件[self shutterCamera];}break;default:break;} }-(void)viewWillDisappear:(BOOL)animated{[super viewWillDisappear:animated];self.navigationController.navigationBar.hidden = NO;[UIApplication sharedApplication].statusBarHidden = NO; }//AVMediaTypeVideo設置 - (void)customCamera{self.view.backgroundColor = [UIColor whiteColor];//使用AVMediaTypeVideo 指明self.device代表視頻,默認使用后置攝像頭進行初始化self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];//使用設備初始化輸入self.input = [[AVCaptureDeviceInput alloc]initWithDevice:self.device error:nil];//生成輸出對象self.output = [[AVCaptureMetadataOutput alloc]init];self.ImageOutPut = [[AVCaptureStillImageOutput alloc] init];//生成會話,用來結合輸入輸出self.session = [[AVCaptureSession alloc]init];if ([self.session canSetSessionPreset:AVCaptureSessionPreset1280x720]) {self.session.sessionPreset = AVCaptureSessionPreset1280x720;}if ([self.session canAddInput:self.input]) {[self.session addInput:self.input];}if ([self.session canAddOutput:self.ImageOutPut]) {[self.session addOutput:self.ImageOutPut];}//使用self.session,初始化預覽層,self.session負責驅動input進行信息的采集,layer負責把圖像渲染顯示self.previewLayer = [[AVCaptureVideoPreviewLayer alloc]initWithSession:self.session];self.previewLayer.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);self.previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;[self.view.layer addSublayer:self.previewLayer];//開始啟動[self.session startRunning];if ([_device lockForConfiguration:nil]) {if ([_device isFlashModeSupported:AVCaptureFlashModeAuto]) {[_device setFlashMode:AVCaptureFlashModeAuto];}//自動白平衡if ([_device isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeAutoWhiteBalance]) {[_device setWhiteBalanceMode:AVCaptureWhiteBalanceModeAutoWhiteBalance];}[_device unlockForConfiguration];} } - (void)FlashOn{if ([_device lockForConfiguration:nil]) {if (_isflashOn) {if ([_device isFlashModeSupported:AVCaptureFlashModeOff]) {[_device setFlashMode:AVCaptureFlashModeOff];_isflashOn = NO; // [_flashButton setTitle:@"閃光燈關" forState:UIControlStateNormal];}}else{if ([_device isFlashModeSupported:AVCaptureFlashModeOn]) {[_device setFlashMode:AVCaptureFlashModeOn];_isflashOn = YES; // [_flashButton setTitle:@"閃光燈開" forState:UIControlStateNormal];}}[_device unlockForConfiguration];} } - (void)changeCamera{NSUInteger cameraCount = [[AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo] count];if (cameraCount > 1) {NSError *error;CATransition *animation = [CATransition animation];animation.duration = .5f;animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];animation.type = @"oglFlip";AVCaptureDevice *newCamera = nil;AVCaptureDeviceInput *newInput = nil;AVCaptureDevicePosition position = [[_input device] position];if (position == AVCaptureDevicePositionFront){newCamera = [self cameraWithPosition:AVCaptureDevicePositionBack];animation.subtype = kCATransitionFromLeft;}else {newCamera = [self cameraWithPosition:AVCaptureDevicePositionFront];animation.subtype = kCATransitionFromRight;}newInput = [AVCaptureDeviceInput deviceInputWithDevice:newCamera error:nil];[self.previewLayer addAnimation:animation forKey:nil];if (newInput != nil) {[self.session beginConfiguration];[self.session removeInput:_input];if ([self.session canAddInput:newInput]) {[self.session addInput:newInput];self.input = newInput;} else {[self.session addInput:self.input];}[self.session commitConfiguration];} else if (error) {NSLog(@"toggle carema failed, error = %@", error);}} } - (AVCaptureDevice *)cameraWithPosition:(AVCaptureDevicePosition)position{NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];for ( AVCaptureDevice *device in devices )if ( device.position == position ) return device;return nil; } - (void)focusGesture:(UITapGestureRecognizer*)gesture{CGPoint point = [gesture locationInView:gesture.view];[self focusAtPoint:point]; } - (void)focusAtPoint:(CGPoint)point{CGSize size = self.view.bounds.size;CGPoint focusPoint = CGPointMake( point.y /size.height ,1-point.x/size.width );NSError *error;if ([self.device lockForConfiguration:&error]) {if ([self.device isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {[self.device setFocusPointOfInterest:focusPoint];[self.device setFocusMode:AVCaptureFocusModeAutoFocus];}if ([self.device isExposureModeSupported:AVCaptureExposureModeAutoExpose ]) {[self.device setExposurePointOfInterest:focusPoint];[self.device setExposureMode:AVCaptureExposureModeAutoExpose];}[self.device unlockForConfiguration]; // _focusView.center = point; // _focusView.hidden = NO;[UIView animateWithDuration:0.3 animations:^{ // _focusView.transform = CGAffineTransformMakeScale(1.25, 1.25);}completion:^(BOOL finished) {[UIView animateWithDuration:0.5 animations:^{ // _focusView.transform = CGAffineTransformIdentity;} completion:^(BOOL finished) { // _focusView.hidden = YES;}];}];}} #pragma mark - 截取照片 - (void) shutterCamera{AVCaptureConnection * videoConnection = [self.ImageOutPut connectionWithMediaType:AVMediaTypeVideo];if (!videoConnection) {NSLog(@"take photo failed!");[SVProgressHUD showErrorWithStatus:@"拍照失敗,稍后重試!" duration:2.0];[self.navigationController popViewControllerAnimated:YES];return;}[self.ImageOutPut captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) {if (imageDataSampleBuffer == NULL) {return;}NSData * imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];UIImage *imageResult = [UIImage imageWithData:imageData];[self.session stopRunning];//改變該圖片的方向self.image = [UIImage imageWithCGImage:imageResult.CGImagescale:imageResult.scaleorientation:UIImageOrientationUp];if (self.image) {if (self.delegate && [self.delegate respondsToSelector:@selector(popControllerWithImage:)]) {[self.delegate popControllerWithImage:self.image];[self.navigationController popViewControllerAnimated:YES];}}// [self saveImageToPhotoAlbum:self.image];// self.imageView = [[UIImageView alloc]initWithFrame:self.previewLayer.frame];// [self.view insertSubview:_imageView belowSubview:_PhotoButton];// self.imageView.layer.masksToBounds = YES;// self.imageView.image = _image;NSLog(@"image size = %@",NSStringFromCGSize(self.image.size));}]; }#pragma - 保存至相冊 - (void)saveImageToPhotoAlbum:(UIImage*)savedImage{UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); }// 指定回調方法 - (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo{NSString *msg = nil ;if(error != NULL){msg = @"保存圖片失敗" ;}else{msg = @"保存圖片成功" ;}UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"保存圖片結果提示"message:msgdelegate:selfcancelButtonTitle:@"確定"otherButtonTitles:nil];[alert show]; }//取消按鈕點擊事件 -(void)cancle{[self.imageView removeFromSuperview];[self.session startRunning]; } #pragma mark - 檢查相機權限 - (BOOL)canUserCamear{AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];if (authStatus == AVAuthorizationStatusDenied) {UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"請打開相機權限" message:@"設置-隱私-相機" delegate:self cancelButtonTitle:@"確定" otherButtonTitles:@"取消", nil];alertView.tag = 100;[alertView show];return NO;}else{return YES;}return YES; }- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{if (buttonIndex == 0 && alertView.tag == 100) {NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];if([[UIApplication sharedApplication] canOpenURL:url]) {[[UIApplication sharedApplication] openURL:url];}} }@end

WYPCustomCameraView:

// // WYPCustomCameraView.h // RockUnion // // Created by 王彥平 on 2021/12/29. // Copyright ? 2021 王彥平. All rights reserved. //#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGINtypedef NS_ENUM(NSInteger, WYPCameraActionType) {WYPCameraFrontIDCardPicture = 0,//身份證正面WYPCameraReverseIDCardPicture,//身份證反面WYPCameraBankCardPicture,//銀行卡 };typedef void(^TypeBtnClicedBlock)(NSInteger tag);@interface WYPCustomCameraView : UIView@property (nonatomic, strong) TypeBtnClicedBlock btnBlock;@property (nonatomic, assign) WYPCameraActionType cameraType;+(instancetype)WYPCustomCameraView;@endNS_ASSUME_NONNULL_END// // WYPCustomCameraView.m // RockUnion // // Created by 王彥平 on 2021/12/29. // Copyright ? 2021 王彥平. All rights reserved. //#import "WYPCustomCameraView.h" #import <AVFoundation/AVFoundation.h>@interface WYPCustomCameraView()@property (weak, nonatomic) IBOutlet UILabel *cardLabel; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *cardLabelRightMargin;@property (weak, nonatomic) IBOutlet UILabel *lightLabel; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *lightLabelRightMargin;@property (weak, nonatomic) IBOutlet UIView *maskView;@property (weak, nonatomic) IBOutlet UIImageView *sqImgView;@property (nonatomic, strong)UIImageView *preView;//捕獲設備,通常是前置攝像頭,后置攝像頭,麥克風(音頻輸入) @property(nonatomic)AVCaptureDevice *device;@property (weak, nonatomic) IBOutlet UIImageView *embleImgView;//國徽圖標 @property (weak, nonatomic) IBOutlet UIImageView *portraitImgView;//頭像圖標@end @implementation WYPCustomCameraView+(instancetype)WYPCustomCameraView{return [[[NSBundle mainBundle] loadNibNamed:@"WYPCustomCameraView" owner:nil options:nil]lastObject]; }-(void)awakeFromNib{[super awakeFromNib];[self setUI];[self customCamera]; }//設置UI -(void)setUI{self.backgroundColor = [UIColor clearColor];CGAffineTransform transform= CGAffineTransformRotate(self.cardLabel.transform, M_PI_2);self.cardLabel.transform = transform;self.cardLabelRightMargin.constant = -100;CGAffineTransform transform1 = CGAffineTransformRotate(self.lightLabel.transform, M_PI_2);self.lightLabel.transform = transform1;self.lightLabelRightMargin.constant = -15;self.maskView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.3];self.maskView.frame = CGRectMake(0,0, SCREEN_WIDTH, SCREEN_HEIGHT);UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.maskView.bounds];// 創建矩形CGFloat circlePathWidth = SCREEN_WIDTH - 42.0 - 44.0;CGFloat circlePathHeight = circlePathWidth * 445.0/289.0;CGRect circlePathRect = CGRectMake(42.0, (SCREEN_HEIGHT - circlePathHeight)*0.5, circlePathWidth, circlePathHeight);UIBezierPath *circlePath = [UIBezierPath bezierPathWithRect:circlePathRect];[path appendPath:circlePath];CAShapeLayer *shaperLayer = [CAShapeLayer layer];shaperLayer.frame = self.maskView.bounds;shaperLayer.fillColor = [UIColor colorWithHexString:@"000000" alpha:0.3].CGColor;// 設置填充規則shaperLayer.fillRule = kCAFillRuleEvenOdd;shaperLayer.path = path.CGPath;[self.maskView.layer addSublayer: shaperLayer];}- (void)customCamera{//使用AVMediaTypeVideo 指明self.device代表視頻,默認使用后置攝像頭進行初始化self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; }#pragma mark - 按鈕點擊事件 //返回按鈕點擊事件 - (IBAction)backBtnClicked:(UIButton *)sender {if (self.btnBlock) {self.btnBlock(sender.tag - 10);} }//電燈按鈕點擊事件 - (IBAction)lightBtnClicked:(UIButton *)sender {if (self.btnBlock) {self.btnBlock(sender.tag - 10);}// [self flashOn:sender.selected];[self turnTorchOn:sender]; }//拍照按鈕點擊事件 - (IBAction)cameraBtnClicked:(UIButton *)sender {if (self.btnBlock) {self.btnBlock(sender.tag - 10);}}//閃光燈開關 - (void)flashOn:(BOOL)isflashOn{if (!isflashOn) {self.lightLabel.text = @"閃光燈關";}else{self.lightLabel.text = @"閃光燈開";}}//手電筒 -(void)turnTorchOn: (UIButton *) sender{sender.selected = !sender.selected;if (!sender.selected) {self.lightLabel.text = @"輕觸關閉";}else{self.lightLabel.text = @"輕觸照亮";}Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");if (captureDeviceClass !=nil) {AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];if ([device hasTorch] && [device hasFlash]){[device lockForConfiguration:nil];if (sender.selected) {[device setTorchMode:AVCaptureTorchModeOn]; // [device setFlashMode:AVCaptureFlashModeOn];} else {[device setTorchMode:AVCaptureTorchModeOff]; // [device setFlashMode:AVCaptureFlashModeOff];}[device unlockForConfiguration];}else{NSLog(@"初始化失敗");}}else{NSLog(@"沒有閃光設備");} }//設置拍照類型 -(void)setCameraType:(WYPCameraActionType)cameraType{_cameraType = cameraType;switch (cameraType) {case WYPCameraFrontIDCardPicture:{//身份證正面self.portraitImgView.hidden = NO;self.embleImgView.hidden = YES;}break;case WYPCameraReverseIDCardPicture:{//身份證反面self.portraitImgView.hidden = YES;self.embleImgView.hidden = NO;}break;default:{//銀行卡self.portraitImgView.hidden = YES;self.embleImgView.hidden = YES;}break;} }@end

調用:

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {[actionSheet addAction:[UIAlertAction actionWithTitle:@"相機" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {// self.imagePickerPhotoVC.sourceType = UIImagePickerControllerSourceTypeCamera;// self.imagePickerPhotoVC.modalPresentationStyle = UIModalPresentationOverCurrentContext;// [self presentViewController:self.imagePickerPhotoVC animated:YES completion:nil];WYPCustomCameraVC *cameraVC = [[WYPCustomCameraVC alloc]init];cameraVC.hidesBottomBarWhenPushed = YES;cameraVC.delegate = self;[self.navigationController pushViewController:cameraVC animated:YES];if(self.transitionImgView.tag == 100){//身份證正面cameraVC.cameraType = WYPCameraFrontIDCardPicture;}else if (self.transitionImgView.tag == 200){//身份證反面cameraVC.cameraType = WYPCameraReverseIDCardPicture;}else if (self.transitionImgView.tag == 300){//銀行卡照cameraVC.cameraType = WYPCameraBankCardPicture;}}]];}[actionSheet addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {[self setStatusBarBackgroundColor:[UIColor clearColor]];}]];

2.方法二:WYPImagePickerController?繼承UIImagePickerController:

// // WYPImagePickerController.h // RockUnion // // Created by 王彥平 on 2021/12/29. // Copyright ? 2021 王彥平. All rights reserved. //#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN@interface WYPImagePickerController : UIImagePickerController@endNS_ASSUME_NONNULL_END// // WYPImagePickerController.m // RockUnion // // Created by 王彥平 on 2021/12/29. // Copyright ? 2021 王彥平. All rights reserved. //#import "WYPImagePickerController.h" #import "WYPImageView.h" #import "WYPCustomCameraView.h"@interface WYPImagePickerController ()@property (nonatomic, strong) WYPCustomCameraView *cameraView;@end@implementation WYPImagePickerController#pragma mark - lazy -(WYPCustomCameraView *)cameraView{if (!_cameraView) {_cameraView = [WYPCustomCameraView WYPCustomCameraView];WS(weakSelf);_cameraView.btnBlock = ^(NSInteger tag) {[weakSelf cameraViewBtnClickedWithTag:tag];};}return _cameraView; }- (void)viewDidLoad {[super viewDidLoad];WYPImageView *imageView = [[WYPImageView alloc]initWithFrame:self.view.bounds];self.cameraView.frame = imageView.bounds;[imageView addSubview:self.cameraView];self.cameraOverlayView = imageView; } -(void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];[self setNav]; }//設置狀態欄 -(void)setNav{// 設置狀態欄[Tools setStatusBarBackgroundColor:[UIColor clearColor]];self.navigationController.navigationBar.hidden = YES;[UIApplication sharedApplication].statusBarHidden = YES; }-(void)viewWillDisappear:(BOOL)animated{[super viewWillDisappear:animated];self.navigationController.navigationBar.hidden = NO;[UIApplication sharedApplication].statusBarHidden = NO; }#pragma mark - 按鈕點擊事件 -(void)cameraViewBtnClickedWithTag:(NSInteger)tag{switch (tag) {case 0:{//返回按鈕點擊事件[self dismissViewControllerAnimated:YES completion:nil];}break;case 1:{//電燈按鈕點擊事件[self flashModeOn];}break;case 2:{//拍照按鈕點擊事件[self takePicture];}break;default:break;} }//閃光燈 -(void)flashModeOn{if (self.cameraFlashMode == UIImagePickerControllerCameraFlashModeAuto) {self.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;}else{self.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;} }- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { // NSString *oldKey = self.item.itemKey; // // // Did the item already have an image? // if (oldKey) { // // Delete the old image // [[BNRImageStore sharedStore] deleteImageForKey:oldKey]; // } // // UIImage *image; // // Get picked image from info dictionary // if (info[UIImagePickerControllerEditedImage]) { // image =info[UIImagePickerControllerEditedImage]; // } // else // { // image = info[UIImagePickerControllerOriginalImage]; // } // // // // // // Store the image in the BNRImageStore for this key // [[BNRImageStore sharedStore] setImage:image forKey:self.item.itemKey]; // // // Put that image onto the screen in our image view // self.imageView.image = image;// Take image picker off the screen -// you must call this dismiss method[self dismissViewControllerAnimated:YES completion:NULL]; }@end

//

// // WYPCustomCameraView.h // RockUnion // // Created by 王彥平 on 2021/12/29. // Copyright ? 2021 王彥平. All rights reserved. //#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGINtypedef NS_ENUM(NSInteger, WYPCameraActionType) {WYPCameraFrontIDCardPicture = 0,//身份證正面WYPCameraReverseIDCardPicture,//身份證反面WYPCameraBankCardPicture,//銀行卡 };typedef void(^TypeBtnClicedBlock)(NSInteger tag);@interface WYPCustomCameraView : UIView@property (nonatomic, strong) TypeBtnClicedBlock btnBlock;@property (nonatomic, assign) WYPCameraActionType cameraType;+(instancetype)WYPCustomCameraView;@endNS_ASSUME_NONNULL_END// // WYPCustomCameraView.m // RockUnion // // Created by 王彥平 on 2021/12/29. // Copyright ? 2021 王彥平. All rights reserved. //#import "WYPCustomCameraView.h" #import <AVFoundation/AVFoundation.h>@interface WYPCustomCameraView()@property (weak, nonatomic) IBOutlet UILabel *cardLabel; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *cardLabelRightMargin;@property (weak, nonatomic) IBOutlet UILabel *lightLabel; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *lightLabelRightMargin;@property (weak, nonatomic) IBOutlet UIView *maskView;@property (weak, nonatomic) IBOutlet UIImageView *sqImgView;@property (nonatomic, strong)UIImageView *preView;//捕獲設備,通常是前置攝像頭,后置攝像頭,麥克風(音頻輸入) @property(nonatomic)AVCaptureDevice *device;@property (weak, nonatomic) IBOutlet UIImageView *embleImgView;//國徽圖標 @property (weak, nonatomic) IBOutlet UIImageView *portraitImgView;//頭像圖標@end @implementation WYPCustomCameraView+(instancetype)WYPCustomCameraView{return [[[NSBundle mainBundle] loadNibNamed:@"WYPCustomCameraView" owner:nil options:nil]lastObject]; }-(void)awakeFromNib{[super awakeFromNib];[self setUI];[self customCamera]; }//設置UI -(void)setUI{self.backgroundColor = [UIColor clearColor];CGAffineTransform transform= CGAffineTransformRotate(self.cardLabel.transform, M_PI_2);self.cardLabel.transform = transform;self.cardLabelRightMargin.constant = -100;CGAffineTransform transform1 = CGAffineTransformRotate(self.lightLabel.transform, M_PI_2);self.lightLabel.transform = transform1;self.lightLabelRightMargin.constant = -15;self.maskView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.3];self.maskView.frame = CGRectMake(0,0, SCREEN_WIDTH, SCREEN_HEIGHT);UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.maskView.bounds];// 創建矩形CGFloat circlePathWidth = SCREEN_WIDTH - 42.0 - 44.0;CGFloat circlePathHeight = circlePathWidth * 445.0/289.0;CGRect circlePathRect = CGRectMake(42.0, (SCREEN_HEIGHT - circlePathHeight)*0.5, circlePathWidth, circlePathHeight);UIBezierPath *circlePath = [UIBezierPath bezierPathWithRect:circlePathRect];[path appendPath:circlePath];CAShapeLayer *shaperLayer = [CAShapeLayer layer];shaperLayer.frame = self.maskView.bounds;shaperLayer.fillColor = [UIColor colorWithHexString:@"000000" alpha:0.3].CGColor;// 設置填充規則shaperLayer.fillRule = kCAFillRuleEvenOdd;shaperLayer.path = path.CGPath;[self.maskView.layer addSublayer: shaperLayer];}- (void)customCamera{//使用AVMediaTypeVideo 指明self.device代表視頻,默認使用后置攝像頭進行初始化self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; }#pragma mark - 按鈕點擊事件 //返回按鈕點擊事件 - (IBAction)backBtnClicked:(UIButton *)sender {if (self.btnBlock) {self.btnBlock(sender.tag - 10);} }//電燈按鈕點擊事件 - (IBAction)lightBtnClicked:(UIButton *)sender {if (self.btnBlock) {self.btnBlock(sender.tag - 10);}// [self flashOn:sender.selected];[self turnTorchOn:sender]; }//拍照按鈕點擊事件 - (IBAction)cameraBtnClicked:(UIButton *)sender {if (self.btnBlock) {self.btnBlock(sender.tag - 10);}}//閃光燈開關 - (void)flashOn:(BOOL)isflashOn{if (!isflashOn) {self.lightLabel.text = @"閃光燈關";}else{self.lightLabel.text = @"閃光燈開";}}//手電筒 -(void)turnTorchOn: (UIButton *) sender{sender.selected = !sender.selected;if (!sender.selected) {self.lightLabel.text = @"閃光燈關";}else{self.lightLabel.text = @"閃光燈開";}Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");if (captureDeviceClass !=nil) {AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];if ([device hasTorch] && [device hasFlash]){[device lockForConfiguration:nil];if (sender.selected) {[device setTorchMode:AVCaptureTorchModeOn];[device setFlashMode:AVCaptureFlashModeOn];} else {[device setTorchMode:AVCaptureTorchModeOff];[device setFlashMode:AVCaptureFlashModeOff];}[device unlockForConfiguration];}else{NSLog(@"初始化失敗");}}else{NSLog(@"沒有閃光設備");} }//設置拍照類型 -(void)setCameraType:(WYPCameraActionType)cameraType{_cameraType = cameraType;switch (cameraType) {case WYPCameraFrontIDCardPicture:{//身份證正面self.portraitImgView.hidden = NO;self.embleImgView.hidden = YES;}break;case WYPCameraReverseIDCardPicture:{//身份證反面self.portraitImgView.hidden = YES;self.embleImgView.hidden = NO;}break;default:{//銀行卡self.portraitImgView.hidden = YES;self.embleImgView.hidden = YES;}break;} }@end

總結

以上是生活随笔為你收集整理的iOS自定义相机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

在线视频成人 | 91在线观看视频 | 久久99网站 | 亚洲欧洲国产日韩精品 | 色先锋av资源中文字幕 | 国产精品欧美久久久久天天影视 | 久久免费视频4 | 精品一区二区在线免费观看 | 操一草| 黄色小视频在线观看免费 | 日韩成人精品一区二区 | 国产日韩精品在线观看 | 国产精品久久久久久久久久直播 | 亚洲精品美女久久 | 日韩在线视频免费观看 | 欧美一区日韩精品 | 欧美经典久久 | 91一区二区三区久久久久国产乱 | 欧美日韩18 | 欧美日韩视频在线一区 | 日韩三级在线观看 | 91视频在线免费观看 | 中文字幕高清有码 | 久久久久高清 | 国产精品1区2区3区在线观看 | 成人精品亚洲 | 激情五月婷婷丁香 | 日韩在线视频不卡 | 国产一区在线观看免费 | 色资源二区在线视频 | 久久久2o19精品 | 久久午夜网 | 精品福利视频在线观看 | 日韩一区二区三区免费视频 | 日韩午夜电影院 | 伊人婷婷久久 | 久久婷综合 | 久久久www | 免费碰碰| 欧美日韩亚洲在线观看 | 一本一道久久a久久精品 | 91手机电影| 精品国产不卡 | 精品一区在线 | 在线午夜电影神马影院 | 九九色视频 | 日韩国产精品一区 | 日韩午夜大片 | 97国产| 97在线影院| 国产一级片网站 | 在线观看国产中文字幕 | 超碰99在线 | 国产精品精品久久久久久 | 欧美综合在线视频 | 色综合www | 黄色三级网站在线观看 | www.久久色| 久久99久国产精品黄毛片入口 | 精品成人在线 | 亚洲美女视频网 | 日韩av男人的天堂 | 国产成人精品一区二区 | 日韩在线视频免费播放 | 国产va在线 | 成人网中文字幕 | 久久综合色天天久久综合图片 | 热久久这里只有精品 | 91亚洲激情 | 毛片无卡免费无播放器 | 超碰97人 | 久久精品久久99精品久久 | 亚洲综合五月 | 中文永久免费观看 | 激情视频国产 | 精品国产一区二区三区久久久 | 午夜精品一区二区三区在线视频 | 日本中文字幕免费观看 | 亚洲国产精品电影 | 日韩欧美一二三 | 午夜影院一级 | 久久欧美在线电影 | 在线观看www91 | 中文字幕2021 | 久久热首页 | 亚洲免费婷婷 | 播五月婷婷| 色婷婷免费视频 | 精品国产一区二区三区日日嗨 | 精品亚洲二区 | 午夜精品久久久99热福利 | 九九热1 | 国产乱对白刺激视频在线观看女王 | 欧美激精品| 久久丁香 | 国产精品99免视看9 国产精品毛片一区视频 | 超碰在线观看av.com | 久久综合婷婷综合 | 日本精品免费看 | 欧美日韩国产在线观看 | 日韩在线一级 | 久久噜噜少妇网站 | 在线免费观看一区二区三区 | 深夜免费小视频 | 天天射天天射天天 | 99精品在线免费 | 国内外激情视频 | 天天摸天天操天天爽 | 午夜精品一区二区三区在线 | 17videosex性欧美 | 又黄又爽又无遮挡免费的网站 | 1000部18岁以下禁看视频 | 99久久精品国产网站 | 国产精品白丝av | 人人爽人人做 | 一区二区三区在线视频111 | 国产精品高清免费在线观看 | av成人在线网站 | 免费在线观看av | 日操干| 色香天天 | av福利在线 | 在线va网站 | 久久香蕉一区 | 天天色天天干天天色 | 黄色在线网站噜噜噜 | 国产 在线 日韩 | 五月婷婷六月综合 | 激情网五月天 | 天天干天天射天天操 | 国产999视频在线观看 | 亚洲婷婷网| 亚洲精品视频二区 | 精品在线一区二区三区 | 久久精品国产免费 | 久免费视频 | 久久精品中文字幕一区二区三区 | 日韩在线观看小视频 | 992tv又爽又黄的免费视频 | 欧美日在线观看 | 亚洲毛片视频 | 日日草av | 97色狠狠 | 久久久久久久久毛片精品 | 玖玖精品在线 | 国产精品成人一区二区三区吃奶 | 成人av网站在线观看 | 黄色免费电影网站 | 国产精品久久久久久久久久新婚 | 999久久久 | 婷婷 综合 色 | 欧美日韩免费在线视频 | 亚洲国产日韩一区 | 久久福利综合 | 亚洲精品国产高清 | 久久五月天色综合 | av片中文字幕 | 久久综合久久八八 | 国产在线无 | 久久中文字幕在线视频 | 久久国产视屏 | 看黄色91 | 最新av中文字幕 | 丝袜美女视频网站 | 国产一区二区三区午夜 | 五月天堂网 | www看片网站 | 久久日本视频 | 久久,天天综合 | 黄色在线小网站 | 在线免费黄色av | 精品国产一区二区三区在线 | 五月综合激情 | 免费a视频在线 | av短片在线 | 久久精品国产第一区二区三区 | 黄色大片入口 | 91精品国产入口 | 中文字幕在线观看完整版电影 | 懂色av懂色av粉嫩av分享吧 | 日本中文字幕电影在线免费观看 | 97色se | av成人资源 | 色婷婷视频在线观看 | 99视频精品在线 | 亚洲.www| 最新中文字幕视频 | 久久成人福利 | 欧美另类一二三四区 | 久草资源免费 | 国产亚洲视频在线 | 色天天久久 | 久久久污| 天天操天天爽天天干 | 日韩一级成人av | 国产视频精品久久 | 9999亚洲| 国产乱老熟视频网88av | 色综合久久久久综合体 | 亚洲精品国产精品久久99 | 国产亚洲无 | 色美女在线 | 欧美在线久久 | 又大又硬又黄又爽视频在线观看 | 蜜臀av性久久久久av蜜臀妖精 | 九九综合在线 | 最新色站 | 色综合久久久久网 | 国产精品久久三 | 久久久国产精品一区二区三区 | 免费av高清 | 天天操狠狠操夜夜操 | 大胆欧美gogo免费视频一二区 | 在线成人一区二区 | 丁香六月欧美 | 国产精品美女久久久久久久 | 美女视频黄在线 | 国产黄a三级 | 色婷婷伊人 | 青青河边草手机免费 | 免费看的黄色的网站 | 日韩二区精品 | 国产精品毛片一区视频播不卡 | 日韩理论在线观看 | 久草在线99 | 一区二区三区电影在线播 | 精品福利视频在线观看 | 国产日韩欧美视频在线观看 | 在线观看黄色大片 | 一区二区三区日韩精品 | 国产精品观看在线亚洲人成网 | 97超碰成人在线 | av资源网在线播放 | 久久久精品欧美一区二区免费 | 欧美贵妇性狂欢 | 中文字幕中文字幕在线中文字幕三区 | 黄网站免费大全入口 | av日韩av | 午夜婷婷网 | 99久久精品免费看国产免费软件 | ,午夜性刺激免费看视频 | 手机看片久久 | 久久在线 | 国产一区二区三区高清播放 | 少妇性xxx| 久久综合九色综合97婷婷女人 | 91av手机在线观看 | 色多多污污 | 黄色在线观看免费网站 | 超碰免费av | 草久久影院 | 亚洲欧美国产精品18p | 啪啪小视频网站 | 国产字幕在线播放 | www色网站 | 一级黄色片在线免费看 | 91字幕| 久久久www成人免费毛片麻豆 | 日本精品在线视频 | 又爽又黄又刺激的视频 | 天天操天天干天天爽 | 日韩手机在线观看 | 2024av| 日韩欧美视频一区二区三区 | 国产在线观看网站 | 天无日天天操天天干 | 亚洲国产美女精品久久久久∴ | 狠狠干夜夜操天天爽 | av免费在线播放 | 久久人人爽人人爽人人 | 国内精品久久久久影院日本资源 | 国外av在线 | 久久男人视频 | 免费看污黄网站 | 极品久久久久久久 | 欧美成人按摩 | 久久久久久中文字幕 | 色综合天天干 | 黄在线| 成人在线免费视频观看 | 18网站在线观看 | 青青射 | 久久精品99国产精品日本 | av中文字幕在线电影 | 在线欧美a | 国产一区在线不卡 | 久久精品国产一区二区 | 美女av在线免费 | 国产精品专区h在线观看 | 国产精品高清在线 | 久久精品视频免费 | 毛片3| 久久视精品 | 国产午夜精品一区二区三区 | 在线观看深夜视频 | 中文字幕亚洲综合久久五月天色无吗'' | 天天鲁天天干天天射 | 九九九九热精品免费视频点播观看 | 欧美日韩裸体免费视频 | 欧美日韩高清在线 | 久草青青在线观看 | 国产精品久久久久久五月尺 | 97夜夜澡人人双人人人喊 | 五月婷婷一区二区三区 | 狠狠色伊人亚洲综合网站野外 | av丝袜制服 | 成年人视频在线免费播放 | 免费看的黄色小视频 | 国产高清视频免费观看 | 天堂av网址 | 天天干天天射天天爽 | 久久精品日产第一区二区三区乱码 | 天天射成人 | 欧美精品中文字幕亚洲专区 | 极品久久久 | 亚洲精品综合在线观看 | 免费色网| 久草精品视频在线看网站免费 | 国产精品久久久区三区天天噜 | 在线免费观看黄 | 综合婷婷丁香 | 久久精品综合 | 人人看人人爱 | 六月激情久久 | 中文字幕一区二区三区四区在线视频 | 久久精品精品电影网 | 激情五月激情综合网 | 亚洲三区在线 | 超碰精品在线 | 丁香花中文字幕 | 国产精品精品国产色婷婷 | 欧美一级性 | 日韩欧美视频二区 | 福利在线看片 | 国产在线精品播放 | 欧美成人精品欧美一级乱 | a级国产毛片 | 久久久网址 | 亚洲日本黄色 | 欧美福利网站 | 在线观看91网站 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 国产一区二区在线播放视频 | 天天做天天爱夜夜爽 | 特级aaa毛片 | 国产久视频 | 操高跟美女 | 日韩av高清 | 亚洲高清激情 | 精品久久久久久久久久久久久久久久 | 狠狠色香婷婷久久亚洲精品 | 免费观看91 | 日韩欧美视频免费在线观看 | 81精品国产乱码久久久久久 | 91网址在线观看 | 国产一区二区视频在线 | 免费高清男女打扑克视频 | 亚洲国产精品推荐 | 国产精品视频 | 国产成人精品一区二区三区在线观看 | av大片网址| 国产久视频 | 欧美日韩免费观看一区=区三区 | 国产精品国产毛片 | 香蕉视频免费在线播放 | 91高清完整版在线观看 | 99免费在线 | 国产精品18毛片一区二区 | 免费国产一区二区 | 五月婷婷av | 国产一级片网站 | 在线观看av小说 | 黄色av高清 | 国产免费观看久久黄 | 成人黄色在线电影 | 久久久天堂 | 日韩欧美精品一区二区三区经典 | 黄色av电影一级片 | 日韩在线影视 | 96av视频 | 国产精品综合在线 | 久久久精品综合 | 色网站免费在线看 | 亚洲永久精品在线 | 美女av免费看 | 日本丶国产丶欧美色综合 | 亚洲精品88欧美一区二区 | 久久99精品国产麻豆婷婷 | 亚洲视频一区二区三区在线观看 | 99精品国产一区二区三区不卡 | 国产黄色片免费看 | 91精品色| 久操伊人 | av在线播放中文字幕 | 精品1区2区 | 91亚洲国产成人久久精品网站 | 久久国产精品一区二区三区四区 | 国产黄色片免费观看 | 成人一级在线观看 | 最近更新中文字幕 | 区一区二区三在线观看 | 狠狠色婷婷丁香六月 | 一级成人免费视频 | 99久久久久国产精品免费 | 欧美大片在线观看一区 | 在线成人一区 | 在线观看黄网站 | 特黄特色特刺激视频免费播放 | 久久视频99 | 亚洲最新在线 | 一区二区三区日韩视频在线观看 | 激情五月播播久久久精品 | 国产高清免费视频 | 中文字幕av电影下载 | av一级片网站| 伊人中文在线 | 亚洲黄色小说网址 | 亚洲最新av在线网站 | 欧美成年性| 人人盈棋牌 | 91九色视频网站 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 欧美日本三级 | 国产精品福利视频 | 超碰在线94| 日韩精品网址 | 国内精品久久久久影院男同志 | 久久99久久久久久 | 欧美精品久久久久a | 麻豆91视频 | 亚洲首页 | 欧美一区二视频在线免费观看 | 亚洲免费精彩视频 | 开心色婷婷 | 天天色综合天天 | 99福利片| 伊人久操 | 日韩在线三级 | 免费观看视频黄 | 久久综合九色综合久久久精品综合 | 视频在线观看入口黄最新永久免费国产 | 国产精品免费人成网站 | 久久精品久久久久电影 | 日韩欧美电影 | 97超碰精品 | 久久99久久99精品免视看婷婷 | 91黄色免费看 | 91精品综合在线观看 | 免费看黄在线 | 久久久久久久久久免费视频 | 五月婷婷毛片 | 久久久综合 | 超碰av在线播放 | 香蕉视频91 | 91天天操 | 免费国产在线观看 | 久久99热久久99精品 | 亚洲视频久久 | 国产小视频精品 | 国产黄视频在线观看 | 中文视频在线看 | 中文字幕有码在线播放 | 97在线观看 | 麻豆免费精品视频 | 国产伦理久久精品久久久久_ | 久久免费在线 | 精品一区二区在线看 | 亚洲精品99久久久久久 | 亚洲第一av在线播放 | 中文字幕一区二区三区四区视频 | 一区精品久久 | 91精品国产99久久久久久久 | 国产精品久久久久三级 | 丁香高清视频在线看看 | 国产精品自产拍在线观看 | 免费观看9x视频网站在线观看 | 探花视频免费在线观看 | 操操日日 | 婷婷久久国产 | 中文字幕色网站 | 国产精品丝袜久久久久久久不卡 | 日韩高清在线一区二区三区 | 中文字幕视频播放 | 久久视频免费在线观看 | 正在播放国产精品 | 亚洲区另类春色综合小说 | 视频高清 | av高清在线 | 一区二区三区免费在线 | 国产免费黄视频在线观看 | 九九免费在线观看 | 成年人免费看av | 黄色小网站在线 | 天堂av网在线 | 亚洲美女精品视频 | 久久视频网 | 99久久精品国产观看 | 69久久久 | 国产精品成人一区二区 | 人人看人人做人人澡 | 欧美男男tv网站 | 人人射人人爽 | 狠狠色丁香婷婷综合 | 色综合天天做天天爱 | 午夜av免费 | 久久综合五月天婷婷伊人 | 91精品国产综合久久福利 | 欧美性超爽 | 亚洲欧美国产精品 | 激情网婷婷 | av免费试看 | 欧美日韩午夜 | 亚a在线| av电影免费在线播放 | 国产精品热 | 超级碰99| 97自拍超碰 | 精品欧美乱码久久久久久 | 久久久国产一区二区 | 波多野结衣动态图 | 亚州精品在线视频 | 丝袜美女视频网站 | 91av在线免费看 | 国产精品综合久久久久久 | 色噜噜狠狠色综合中国 | 亚洲激情在线 | 91香蕉国产在线观看软件 | 99在线免费观看 | 超碰在线成人 | 久久a视频 | 免费黄色av.| 日韩美在线 | 香蕉国产91 | 九九三级毛片 | 中文字幕在线一二 | 久久久国产在线视频 | 日韩精品中文字幕久久臀 | 国产精品一区二区三区观看 | 国产一二三四在线观看视频 | 欧美日韩视频在线观看免费 | 成片免费 | 91高清免费在线观看 | 国产精品视频地址 | 97视频在线免费 | 日本女人b| www.香蕉| 综合天堂av久久久久久久 | 欧美一区二视频在线免费观看 | 国产精品初高中精品久久 | 91精品入口 | 精品久久一 | 在线观看精品一区 | 国产精品成人a免费观看 | 久久av网 | av在线成人| 国产18精品乱码免费看 | 亚洲精品久久在线 | 91欧美视频网站 | 中文字幕高清有码 | 国产系列 在线观看 | 亚洲专区免费观看 | 国产精品一区二区三区观看 | 成人免费av电影 | av 一区二区三区 | 久久久精品欧美一区二区免费 | 午夜精品久久久久久中宇69 | 在线观看 国产 | 91人人插| 激情综合网色播五月 | 国产91粉嫩白浆在线观看 | 日本黄区免费视频观看 | 国产成人亚洲在线观看 | 亚洲欧美日韩精品久久奇米一区 | 日本视频久久久 | 日韩精品一区二区三区视频播放 | 六月丁香婷婷久久 | 欧美一级大片在线观看 | 永久免费精品视频 | 91亚洲综合 | 色天天综合久久久久综合片 | 天天干.com | 日韩欧美在线综合网 | 中文字幕在线不卡国产视频 | 免费视频一区 | 精品少妇一区二区三区在线 | 黄污在线看 | 久艹在线观看视频 | 久久婷五月 | 91久久精品一区二区三区 | 天天操夜夜叫 | 精品国产电影 | 亚洲精品在线观看av | 人人草在线视频 | 色综合久久综合 | 日韩激情影院 | 涩涩色亚洲一区 | 国产精品福利无圣光在线一区 | 久久9视频| 婷婷丁香自拍 | 狠狠夜夜 | 日韩精品不卡在线 | 国产精品久久嫩一区二区免费 | 中文字幕大全 | 欧美在线视频一区二区 | 日韩电影在线观看中文字幕 | 五月婷婷综合激情 | 一区二区三区免费在线观看视频 | 女人18毛片a级毛片一区二区 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 狠狠干五月天 | 午夜精品久久久久久久久久久 | 国产精品一区在线观看你懂的 | 国产一二三四在线视频 | 在线观看成年人 | 337p日本欧洲亚洲大胆裸体艺术 | 伊人狠狠色丁香婷婷综合 | 亚洲成熟女人毛片在线 | 激情视频一区二区 | 国产高清无av久久 | 亚洲h在线播放在线观看h | 成人毛片a | 国产97碰免费视频 | 探花视频在线观看免费版 | 欧美日韩不卡一区二区 | 欧美精品九九99久久 | 91黄色小网站 | 久久99国产一区二区三区 | 亚洲精品在线视频网站 | 91精品国产九九九久久久亚洲 | 亚洲一区视频在线播放 | 色偷偷888欧美精品久久久 | 亚洲三级网 | 91成人精品国产刺激国语对白 | 国产无套一区二区三区久久 | 热精品| 天天爽天天爽天天爽 | 久草色在线观看 | 午夜色大片在线观看 | 99久高清在线观看视频99精品热在线观看视频 | 久久成年人网站 | 狠狠狠色丁香婷婷综合久久五月 | 人人爽人人爽av | 色综合狠狠干 | 国产在线精 | 日韩欧美国产免费播放 | 五月天久久久久久 | 欧美久久成人 | 日韩高清一二三区 | 日韩一级电影在线观看 | 欧美精品中文在线免费观看 | 99精品免费网 | 精品国产区在线 | av免费在线免费观看 | 中文字幕有码在线 | 国产一级久久久 | 国产黄色免费观看 | 国产区欧美 | 国产亚洲资源 | 操天天操 | 国产拍揄自揄精品视频麻豆 | 白丝av在线| 五月天综合网站 | 国产视频资源在线观看 | 国产精品系列在线观看 | 午夜精品成人一区二区三区 | 免费日韩在线 | 亚洲精品国产成人av在线 | 日韩激情片在线观看 | 色婷婷综合在线 | 91精品蜜桃 | 六月丁香综合网 | 91亚色视频在线观看 | 国产精品第 | 国精产品999国精产品视频 | 91大神dom调教在线观看 | 欧美在线观看视频 | 国产尤物视频在线 | 久久精品99久久 | 99热日本 | 久久精品国产精品 | 亚洲国产精品视频在线观看 | 五月婷婷视频在线 | 成人黄色av网站 | 热九九精品 | 欧美一区影院 | 成人av影院在线观看 | 24小时日本在线www免费的 | 四虎影视精品永久在线观看 | 亚洲久草在线视频 | 亚洲自拍av在线 | 欧美日韩中文字幕在线视频 | 中文字幕中文字幕中文字幕 | 一区二区三区在线观看免费 | 天天做综合网 | 天天操狠狠操网站 | 国产免费久久久久 | 国产一区二区在线影院 | 精品国产伦一区二区三区观看方式 | 一本一本久久a久久 | 亚洲三级网站 | 91精品国自产在线观看 | 麻豆国产露脸在线观看 | 亚洲乱码国产乱码精品天美传媒 | 在线播放亚洲 | 天天爱天天操天天射 | 99久久99久久精品国产片 | 最新av网站在线观看 | 美女免费视频观看网站 | 99九九视频| 精品国产一区二区三区不卡 | 欧美 日韩 成人 | 日韩精品在线一区 | 亚洲视频在线看 | av蜜桃在线 | 国产 欧美 日产久久 | 亚洲不卡在线 | 亚洲影院色 | 日韩免费一区二区在线观看 | 最新日本中文字幕 | 日韩大陆欧美高清视频区 | 香蕉视频国产在线 | 麻豆播放| 日韩精品欧美专区 | www.天天射 | 九九视频精品在线 | 亚洲一级片 | 黄色小视频在线观看免费 | 国产999精品久久久久久麻豆 | 精品久久一区二区三区 | 国产女做a爱免费视频 | 久久精品123| 丝袜美腿亚洲 | 三上悠亚一区二区在线观看 | 在线观看日韩中文字幕 | 91精彩在线视频 | 超碰在线94 | 色综合久久综合中文综合网 | 久久久久综合视频 | 2023av在线 | 亚洲区视频在线 | 欧美色图88| 深夜免费福利视频 | 中文字幕成人在线观看 | 密桃av在线 | 亚洲综合欧美日韩狠狠色 | av一级片在线观看 | 国产精品久久久久久吹潮天美传媒 | 久久久久久久久毛片精品 | 超碰97人| 91高清视频在线 | 免费91在线 | 福利视频一二区 | 在线免费视频你懂的 | 午夜精品福利一区二区 | 在线观看一 | 成人在线观看日韩 | 国产在线视频一区二区 | 久久久久久久久爱 | 九九综合九九 | 人人澡人人干 | 视频在线日韩 | 国产亚洲精品久久久久久网站 | 婷婷在线资源 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 亚洲精品看片 | 天天草天天色 | 国产在线观看网站 | 丁香久久综合 | 中文字幕在线字幕中文 | 久久久国产精品一区二区三区 | 国产在线精品区 | 久草在线资源网 | 精品网站999www | 欧美 亚洲 另类 激情 另类 | 免费视频91 | 色狠狠综合天天综合综合 | 日韩在线免费播放 | 狠狠综合网 | 啪啪免费观看网站 | 亚洲精品1234区 | 九九色综合 | 欧美日韩另类视频 | 亚洲激情综合 | 黄色一二级片 | 国产尤物一区二区三区 | 伊人色播 | 狠狠的日 | 午夜在线国产 | 午夜神马福利 | 亚洲热久久 | 亚洲乱码在线 | 人人舔人人爽 | 亚洲成av人片一区二区梦乃 | 97国产精品免费 | 伊人国产视频 | 操操操日日 | 亚州精品天堂中文字幕 | 黄色看片| 亚洲精品国精品久久99热 | 日韩二区在线 | 日韩精品电影在线播放 | 久久午夜鲁丝片 | 在线免费国产视频 | 日本韩国欧美在线观看 | 免费观看第二部31集 | 国产一区欧美一区 | 国产福利a | 久久精品香蕉 | 久久精品影视 | 久久这里只有精品9 | 亚洲欧美日韩中文在线 | 人人狠狠 | 中文字幕资源在线 | 午夜精品久久久久久久99 | 国产亚洲久久 | 精品国内自产拍在线观看视频 | 亚洲乱码在线 | 99免费精品| av动图| 免费a现在观看 | 视频国产一区二区三区 | 国产精品久久久久永久免费 | www.xxxx变态.com | 免费进去里的视频 | 天天射天天爽 | 久久久久影视 | 99国产一区 | 99久久er热在这里只有精品15 | 国产精品初高中精品久久 | 亚洲作爱视频 | 丁香婷婷网 | 91久久精品日日躁夜夜躁国产 | 500部大龄熟乱视频使用方法 | 九色激情网| av色影院| av电影在线免费 | a天堂中文在线 | 欧美特一级片 | 日日干av| 成年人视频免费在线 | 亚洲高清在线观看视频 | 黄色av一级 | 国产成人av电影 | 91理论电影 | 五月在线视频 | 六月丁香婷婷久久 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 色94色欧美| 日韩偷拍精品 | 精品xxx | 国产麻豆精品一区二区 | 天天综合中文 | 久久最新| 中文字幕观看在线 | 欧美激情精品久久久久久 | 中文字幕久久精品亚洲乱码 | 天天插天天色 | 最近更新中文字幕 | 97超级碰碰碰碰久久久久 | 91福利影院在线观看 | 黄色小说视频网站 | 四虎亚洲精品 | 日韩在线观看一区二区 | 九色免费视频 | 黄色av三级在线 | 日日碰狠狠躁久久躁综合网 | 青青网视频 | 亚洲闷骚少妇在线观看网站 | 波多野结衣精品在线 | 日韩在线三级 | 日韩免费在线视频观看 | 国产精品中文字幕在线播放 | 麻豆视频免费在线播放 | 久久99深爱久久99精品 | 色姑娘综合天天 | 亚洲精品日韩一区二区电影 | 欧美久久精品 | 国产精品成人国产乱 | 九九热精品国产 | 91伊人影院 | 日韩在线首页 | 精品国产黄色片 | 91喷水 | 久久综合色一综合色88 | 中文字幕精品一区 | 国产无吗一区二区三区在线欢 | 在线观看你懂的网站 | 青青河边草手机免费 | 激情视频在线观看网址 | 国产精品视频免费观看 | 四虎国产精品免费 | 精品国产99| 亚洲资源在线 | 手机看片99| 久久精品视频2 | 天天色天天干天天色 | 91免费的视频在线播放 | 天天天天天操 | 久久久久久网站 | 久久av网址| 日韩高清免费在线观看 | 精品国产午夜 | 在线免费视频你懂的 | 免费一区在线 | 国产高清一 | 草樱av | 日韩欧美电影在线观看 | 性色va | 国产精品福利午夜在线观看 | 成人久久综合 | 日韩精选在线观看 | 久草电影免费在线观看 | 8x成人免费视频 | 2018好看的中文在线观看 | 成人91av | 色综合久久天天 | 精品人人爽 | a国产精品 | 一区二区不卡在线观看 | 一区二区三区在线免费播放 | 99久久激情视频 | 国产精品久久久久久一区二区三区 | 99久久精品国产网站 | 不卡的av中文字幕 | 国产一区在线免费观看 | 91久久国产露脸精品国产闺蜜 | 日韩网站一区二区 | 久草精品视频在线观看 | 久久你懂得| 日韩大陆欧美高清视频区 | 欧美一级性生活 | 久久韩国免费视频 | 久久人人爽人人爽 | 操操碰| 天天操月月操 | 亚洲欧美日韩一区二区三区在线观看 | 久久久久区 | 97视频免费在线 | 久草香蕉在线 | 人人涩 | 二区三区中文字幕 | 96精品在线 | 伊人天天综合 | 色综合久久综合中文综合网 | 国产精品9999 | 日韩精品久久久久久中文字幕8 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产精品午夜久久 | 91视频 - 114av| 97超碰中文 | 午夜精品久久久久久久久久 | 91高清一区 | 国产中文字幕网 | 天天天干夜夜夜操 | 亚洲做受高潮欧美裸体 | 免费观看国产精品视频 | 久久综合操 | 国产在线观看,日本 | 最新午夜 | 91精品国产综合久久久久久久 | 久久久九色精品国产一区二区三区 | 久久精品国产精品亚洲 | 国产高清视频在线观看 | 国产成人精品一区在线 | 久99热| 欧美午夜精品久久久久久浪潮 | 天天想夜夜操 | 玖玖玖影院 | 91日韩在线视频 | 久久久久久国产精品久久 | 国产精品99久久久久人中文网介绍 | 久久久国产精品亚洲一区 | 激情综合中文娱乐网 | 一区二区三区在线不卡 | 麻豆精品91| 久久婷婷五月综合色丁香 | 天天草天天草 | 免费日韩电影 | 日本中文字幕在线电影 | 国产精品久久久久久久久久99 | 天天操天天摸天天爽 | 一区二区精品在线视频 | 欧美成人xxx | 免费在线观看av电影 | 999久久久久久久久 69av视频在线观看 | av电影一区二区三区 | 狠狠操天天射 | 摸bbb搡bbb搡bbbb | 在线 日韩 av | 久久综合中文色婷婷 | 欧美片一区二区三区 | 在线超碰av| 在线观看亚洲a | 国产精品美女毛片真酒店 | 国产免费资源 | 久久综合导航 | 夜夜狠狠 | 国产精品久久久免费 |