ver smart samsung por philips conectar como cables ios camera

ios - smart - Toma una foto en el iPhone sin mostrar los controles.



conectar iphone a tv samsung (2)

EDITAR: Como se sugiere en los comentarios a continuación, ahora he mostrado explícitamente cómo se debe declarar e inicializar AVCaptureSession. Parece que algunos hicieron la inicialización incorrectamente o declararon AVCaptureSession como una variable local en un método. Esto no funcionaría.

El siguiente código permite tomar una foto usando AVCaptureSession sin la entrada del usuario:

// Get all cameras in the application and find the frontal camera. AVCaptureDevice *frontalCamera; NSArray *allCameras = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; // Find the frontal camera. for ( int i = 0; i < allCameras.count; i++ ) { AVCaptureDevice *camera = [allCameras objectAtIndex:i]; if ( camera.position == AVCaptureDevicePositionFront ) { frontalCamera = camera; } } // If we did not find the camera then do not take picture. if ( frontalCamera != nil ) { // Start the process of getting a picture. session = [[AVCaptureSession alloc] init]; // Setup instance of input with frontal camera and add to session. NSError *error; AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:frontalCamera error:&error]; if ( !error && [session canAddInput:input] ) { // Add frontal camera to this session. [session addInput:input]; // We need to capture still image. AVCaptureStillImageOutput *output = [[AVCaptureStillImageOutput alloc] init]; // Captured image. settings. [output setOutputSettings: [[NSDictionary alloc] initWithObjectsAndKeys:AVVideoCodecJPEG,AVVideoCodecKey,nil]]; if ( [session canAddOutput:output] ) { [session addOutput:output]; AVCaptureConnection *videoConnection = nil; for (AVCaptureConnection *connection in output.connections) { for (AVCaptureInputPort *port in [connection inputPorts]) { if ([[port mediaType] isEqual:AVMediaTypeVideo] ) { videoConnection = connection; break; } } if (videoConnection) { break; } } // Finally take the picture if ( videoConnection ) { [session startRunning]; [output captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) { if (imageDataSampleBuffer != NULL) { NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer]; UIImage *photo = [[UIImage alloc] initWithData:imageData]; } }]; } } } }

La variable de sesión es de tipo AVCaptureSession y se ha declarado en el archivo .h de la clase (ya sea como propiedad o como miembro privado de la clase):

AVCaptureSession *session;

Luego deberá inicializarse en algún lugar, por ejemplo, en el método init de la clase:

session = [[AVCaptureSession alloc] init]

¿Hay una manera de tomar una imagen en código en el iPhone sin pasar por los controles de Apple? He visto un montón de aplicaciones que hacen esto, pero no estoy seguro de qué API llamar.


Sí, hay dos maneras de hacer esto. Uno, disponible en iOS 3.0+, es usar la clase UIImagePickerController , establecer la propiedad showsCameraControls en NO y configurar la propiedad cameraOverlayView en sus propios controles personalizados. Dos, disponible en iOS 4.0+, es configurar una AVCaptureSession , que le proporciona una AVCaptureDeviceInput dispositivo de entrada de datos AVCaptureDeviceInput utilizando el dispositivo de cámara adecuado, y AVCaptureStillImageOutput . El primer enfoque es mucho más simple y funciona en más versiones de iOS, pero el segundo enfoque le brinda un mayor control sobre la resolución de fotos y las opciones de archivos.