当前位置: 首页 > news >正文

南宁在哪里推广网站郑州人流医院哪家好

南宁在哪里推广网站,郑州人流医院哪家好,泰安 网站建设,小程序开发需求方案目的#xff1a;打开、关闭前置摄像头#xff0c;绘制图像#xff0c;并获取摄像头的二进制数据。 需要的库 AVFoundation.framework 、CoreVideo.framework 、CoreMedia.framework 、QuartzCore.framework 该摄像头捕抓必须编译真机的版本#xff0c;模拟器下编译不了。 函…目的打开、关闭前置摄像头绘制图像并获取摄像头的二进制数据。 需要的库 AVFoundation.framework 、CoreVideo.framework 、CoreMedia.framework 、QuartzCore.framework 该摄像头捕抓必须编译真机的版本模拟器下编译不了。 函数说明 - (void)createControl { // UI界面控件的创建 } - (AVCaptureDevice *)getFrontCamera; 获取前置摄像头设备 - (void)startVideoCapture; 打开摄像头并开始捕捉图像 其中代码 AVCaptureVideoPreviewLayer* previewLayer  [AVCaptureVideoPreviewLayer layerWithSession: self-avCaptureSession]; previewLayer.frame  localView.bounds; previewLayer.videoGravity  AVLayerVideoGravityResizeAspectFill; [self-localView.layer addSublayer: previewLayer];  为把图片画到UIView里面 - (void)stopVideoCapture:(id)arg 关闭摄像头停止捕抓图像 其中代码 for(UIView*viewinself-localView.subviews) { [viewremoveFromSuperview]; } 为移除摄像头图像的View 详情见代码代码拷过去可以直接使用      Over!!!! 代码 头文件 // //  AVCallController.h //  Pxlinstall // //  Created by Lin Charlie C. on 11-3-24. //  Copyright 2011  xxxx. All rights reserved. // #import UIKit/UIKit.h #import AVFoundation/AVFoundation.h interface AVCallController : UIViewController AVCaptureVideoDataOutputSampleBufferDelegate { //UI UILabel*labelState; UIButton*btnStartVideo; UIView*localView; AVCaptureSession* avCaptureSession; AVCaptureDevice *avCaptureDevice; BOOLfirstFrame; //是否为第一帧 intproducerFps; } property (nonatomic, retain) AVCaptureSession *avCaptureSession; property (nonatomic, retain) UILabel *labelState; - (void)createControl; - (AVCaptureDevice *)getFrontCamera; - (void)startVideoCapture; - (void)stopVideoCapture:(id)arg; end / / / 实现文件     // //  AVCallController.m //  Pxlinstall // //  Created by Lin Charlie C. on 11-3-24. //  Copyright 2011  高鸿移通. All rights reserved. // #import AVCallController.h implementation AVCallController synthesize avCaptureSession; synthesize labelState; // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. /* - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {     self  [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];     if (self) {         // Custom initialization.     }     return self; } */ -(id)init { if(self [superinit]) { firstFrame YES; producerFps 50; } returnself; } // Implement loadView to create a view hierarchy programmatically, without using a nib. - (void)loadView { [superloadView]; [selfcreateControl]; } /* // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad {     [super viewDidLoad]; } */ /* // Override to allow orientati***** other than the default portrait orientation. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {     // Return YES for supported orientati*****.     return (interfaceOrientation  UIInterfaceOrientationPortrait); } */ - (void)didReceiveMemoryWarning { // Releases the view if it doesnt have a superview. [superdidReceiveMemoryWarning]; // Release any cached data, images, etc. that arent in use. } - (void)viewDidUnload { [superviewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet  nil; } - (void)dealloc {     [super dealloc]; } #pragma mark - #pragma mark createControl - (void)createControl { //UI展示 self.view.backgroundColor [UIColorgrayColor]; labelState [[UILabelalloc] initWithFrame:CGRectMake(10, 20, 220, 30)]; labelState.backgroundColor [UIColorclearColor]; [self.viewaddSubview:labelState]; [labelStaterelease]; btnStartVideo [[UIButtonalloc] initWithFrame:CGRectMake(20, 350, 80, 50)]; [btnStartVideosetTitle:StarforState:UIControlStateNormal]; [btnStartVideosetBackgroundImage:[UIImageimageNamed:Images/button.png] forState:UIControlStateNormal]; [btnStartVideoaddTarget:selfaction:selector(startVideoCapture) forControlEvents:UIControlEventTouchUpInside]; [self.viewaddSubview:btnStartVideo]; [btnStartVideorelease]; UIButton* stop  [[UIButtonalloc] initWithFrame:CGRectMake(120, 350, 80, 50)]; [stop setTitle:StopforState:UIControlStateNormal]; [stop setBackgroundImage:[UIImageimageNamed:Images/button.png] forState:UIControlStateNormal]; [stop addTarget:selfaction:selector(stopVideoCapture:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:stop]; [stop release]; localView [[UIViewalloc] initWithFrame:CGRectMake(40, 50, 200, 300)]; [self.viewaddSubview:localView]; [localViewrelease]; } #pragma mark - #pragma mark VideoCapture - (AVCaptureDevice *)getFrontCamera { //获取前置摄像头设备 NSArray *cameras  [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];     for (AVCaptureDevice *device in cameras) {         if (device.position  AVCaptureDevicePositionFront)             return device;     }     return [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; } - (void)startVideoCapture { //打开摄像设备并开始捕抓图像 [labelStatesetText:Starting Video stream]; if(self-avCaptureDevice|| self-avCaptureSession) { [labelStatesetText:Already capturing]; return; } if((self-avCaptureDevice  [self getFrontCamera])  nil) { [labelStatesetText:Failed to get valide capture device]; return; } NSError *error  nil;     AVCaptureDeviceInput *videoInput  [AVCaptureDeviceInput deviceInputWithDevice:self-avCaptureDevice error:error];     if (!videoInput) { [labelStatesetText:Failed to get video input]; self-avCaptureDevice nil;         return;     }     self-avCaptureSession  [[AVCaptureSession alloc] init];     self-avCaptureSession.sessionPreset  AVCaptureSessionPresetLow;     [self-avCaptureSession addInput:videoInput]; // Currently, the only supported key is kCVPixelBufferPixelFormatTypeKey. Recommended pixel format choices are  // kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange or kCVPixelFormatType_32BGRA.  // On iPhone 3G, the recommended pixel format choices are kCVPixelFormatType_422YpCbCr8 or kCVPixelFormatType_32BGRA. //     AVCaptureVideoDataOutput *avCaptureVideoDataOutput  [[AVCaptureVideoDataOutput alloc] init]; NSDictionary*settings  [[NSDictionaryalloc] initWithObjectsAndKeys: //[NSNumber numberWithUnsignedInt:kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange], kCVPixelBufferPixelFormatTypeKey, [NSNumbernumberWithInt:240], (id)kCVPixelBufferWidthKey,                               [NSNumber numberWithInt:320], (id)kCVPixelBufferHeightKey,   nil];     avCaptureVideoDataOutput.videoSettings  settings;     [settings release];     avCaptureVideoDataOutput.minFrameDuration  CMTimeMake(1, self-producerFps); /*We create a serial queue to handle the processing of our frames*/ dispatch_queue_tqueue  dispatch_queue_create(org.doubango.idoubs, NULL);     [avCaptureVideoDataOutput setSampleBufferDelegate:self queue:queue];     [self-avCaptureSession addOutput:avCaptureVideoDataOutput];     [avCaptureVideoDataOutput release]; dispatch_release(queue); AVCaptureVideoPreviewLayer* previewLayer  [AVCaptureVideoPreviewLayer layerWithSession: self-avCaptureSession]; previewLayer.frame  localView.bounds; previewLayer.videoGravity AVLayerVideoGravityResizeAspectFill; [self-localView.layer addSublayer: previewLayer]; self-firstFrame YES;     [self-avCaptureSession startRunning]; [labelStatesetText:Video capture started]; } - (void)stopVideoCapture:(id)arg { //停止摄像头捕抓 if(self-avCaptureSession){ [self-avCaptureSession stopRunning]; self-avCaptureSession nil; [labelStatesetText:Video capture stopped]; } self-avCaptureDevice nil; //移除localView里面的内容 for(UIView*viewinself-localView.subviews) { [viewremoveFromSuperview]; } } #pragma mark - #pragma mark AVCaptureVideoDataOutputSampleBufferDelegate - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection  { //捕捉数据输出 要怎么处理虽你便 CVPixelBufferRef pixelBuffer  CMSampleBufferGetImageBuffer(sampleBuffer); /*Lock the buffer*/ if(CVPixelBufferLockBaseAddress(pixelBuffer, 0)  kCVReturnSuccess) {         UInt8 *bufferPtr  (UInt8 *)CVPixelBufferGetBaseAddress(pixelBuffer);         size_t buffeSize  CVPixelBufferGetDataSize(pixelBuffer); if(self-firstFrame) {  if(1) { //第一次数据要求宽高类型 int width  CVPixelBufferGetWidth(pixelBuffer); int height  CVPixelBufferGetHeight(pixelBuffer); int pixelFormat  CVPixelBufferGetPixelFormatType(pixelBuffer); switch (pixelFormat) { casekCVPixelFormatType_420YpCbCr8BiPlanarVideoRange: //TMEDIA_PRODUCER(producer)-video.chroma  tmedia_nv12; // iPhone 3GS or 4 NSLog(Capture pixel formatNV12); break; casekCVPixelFormatType_422YpCbCr8: //TMEDIA_PRODUCER(producer)-video.chroma  tmedia_uyvy422; // iPhone 3 NSLog(Capture pixel formatUYUY422); break; default: //TMEDIA_PRODUCER(producer)-video.chroma  tmedia_rgb32; NSLog(Capture pixel formatRGB32); break; } self-firstFrame  NO; } } /*We unlock the buffer*/ CVPixelBufferUnlockBaseAddress(pixelBuffer, 0);      } /*We create an autorelease pool because as we are not in the main_queue our code is  not executed in the main thread. So we have to create an autorelease pool for the thread we are in*/ // NSAutoreleasePool * pool  [[NSAutoreleasePool alloc] init]; //  //    CVImageBufferRef imageBuffer  CMSampleBufferGetImageBuffer(sampleBuffer);  //    /*Lock the image buffer*/ //    CVPixelBufferLockBaseAddress(imageBuffer,0);  //    /*Get information about the image*/ //    uint8_t *baseAddress  (uint8_t *)CVPixelBufferGetBaseAddress(imageBuffer);  //    size_t bytesPerRow  CVPixelBufferGetBytesPerRow(imageBuffer);  //    size_t width  CVPixelBufferGetWidth(imageBuffer);  //    size_t height  CVPixelBufferGetHeight(imageBuffer);   //     //    /*Create a CGImageRef from the CVImageBufferRef*/ //    CGColorSpaceRef colorSpace  CGColorSpaceCreateDeviceRGB();  //    CGContextRef newContext  CGBitmapContextCreate(baseAddress, width, height, 8, bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst); //    CGImageRef newImage  CGBitmapContextCreateImage(newContext);  //  //    /*We release some components*/ //    CGContextRelease(newContext);  //    CGColorSpaceRelease(colorSpace); //     //    /*We display the result on the custom layer. All the display stuff must be done in the main thread because //  UIKit is no thread safe, and as we are not in the main thread (remember we didnt use the main_queue) //  we use performSelectorOnMainThread to call our CALayer and tell it to display the CGImage.*/ // [self.customLayer performSelectorOnMainThread:selector(setContents:) withObject: (id) newImage waitUntilDone:YES]; //  // /*We display the result on the image view (We need to change the orientation of the image so that the video is displayed correctly). //  Same thing as for the CALayer we are not in the main thread so ...*/ // UIImage *image [UIImage imageWithCGImage:newImage scale:1.0 orientation:UIImageOrientationRight]; //  // /*We relase the CGImageRef*/ // CGImageRelease(newImage); //  // [self.imageView performSelectorOnMainThread:selector(setImage:) withObject:image waitUntilDone:YES]; //  // /*We unlock the  image buffer*/ // CVPixelBufferUnlockBaseAddress(imageBuffer,0); //  // [pool drain]; } end 杨航收集技术资料分享给大家
http://www.sadfv.cn/news/309013/

相关文章:

  • 网站后台管理需求电商的运营模式有几种
  • 个人做网站的时代已经过去门户网站建设不断
  • 青海住房和城乡建设部网站婚纱网站设计首页
  • 西安网站制作设计找哪家wordpress首页轮播图
  • 上海的建设网站设计室内装修效果图
  • 体验好的网站怀化火车站网站
  • django做的网站举例wordpress登录后台404
  • asp单页网站源码DMZ做网站
  • wordpress站点维护做网站去哪个公司
  • 制作英文网站案例建设部建筑招投标网站
  • 网站建设咨询费用企业网络营销目标
  • 生活服务网站开发与设计前端页面优化
  • 什么网站做家具出口确定网站风格
  • 可上传多个视频的网站建设网站开发需要多少钱价格
  • 网站备案授权书填写模板Sierra wordpress
  • 网站设计的公司北京凤岗镇网站建设
  • 网站获取qq号码 原理河南省建设网站
  • 微信 公司网站 怎么做叫别人做网站要给什么东西
  • 唐山公司网站建设免费定制网页
  • 那些网站是做俄罗斯鞋子APP网站建设什么用处
  • 徐州网站开发案例门户网站免费奖励自己
  • 济南网站优化推广方案查网站备案
  • 做面食视频网站甘肃住房和城乡建设部网站
  • 在哪个网站上做简历做网页制作怎么样
  • 网站的设计与开发的图片台州网站建设技术支持
  • 做网站有自己的服务器网络维护费
  • 怎么做室内设计公司网站自助手机网站
  • 在哪里买空间做网站郑州网站zhi zuo
  • 医院网站建设 利法拉网络下花园区住房和城乡建设局网站
  • html5网站建设基本流程图宣传式网站