您的位置:首页 > 产品设计 > UI/UE

AVfoundation中焦距的设置(slider实现拉近拉远镜头) -自定义UISlider

2015-02-06 16:18 573 查看
焦距AVfoundation调节焦距
首先设置一个slider

UISlider focusSlider = [[UISlideralloc]initWithFrame:CGRectMake(60,_bottomView.frame.origin.y-60,200,20)];

[focusSlideraddTarget:selfaction:@selector(AdjustFocusAction:)forControlEvents:UIControlEventValueChanged];

[focusSlidersetThumbImage:[UIImageimageNamed:@"camera_view_slider_take_gray.png"]forState:UIControlStateNormal];

[focusSlidersetMinimumTrackImage:[UIImageimageNamed:@"camera_view_sliderbar_gray.png"]forState:UIControlStateNormal];

[focusSlidersetMaximumTrackImage:[UIImageimageNamed:@"camera_view_sliderbar_gray.png"]forState:UIControlStateNormal];

[focusSlidersetBackgroundColor:[UIColorclearColor]];

[focusSlidersetMaximumValue:1];

[focusSlidersetMinimumValue:0];

[focusSlider setValue:0.0];

[self.viewaddSubview:focusSlider];

以下做一下有关相机的设置(只写出来了其中一部分,并非全部)

preview = [AVCaptureVideoPreviewLayerlayerWithSession:self.session];

self.preview.frame =CGRectMake(0,0, self.cameraView.frame.size.width,self.cameraView.frame.size.height);

[self.previewsetPosition:CGPointMake(CGRectGetMidX(self.cameraView.bounds),CGRectGetMidY(self.cameraView.bounds))];

self.preview.videoGravity =AVLayerVideoGravityResize;

[self.cameraView.layeraddSublayer:self.preview];

captureOutput
= (AVCaptureStillImageOutput*)[self.session.outputsobjectAtIndex:0];

focusConnection =[captureOutput connectionWithMediaType:AVMediaTypeVideo];

调节焦距

-(void)AdjustFocusAction:(id)sender

{

[UIViewanimateWithDuration:0.025animations:^{

[self.previewsetAffineTransform:CGAffineTransformMakeScale([(UISlider
*)sendervalue]+1, [(UISlider *)sendervalue]+1)];

focusConnection.videoScaleAndCropFactor = [(UISlider *)sendervalue]+1;

}];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐