【发布时间】:2014-09-16 14:30:03
【问题描述】:
我想把这个函数从 obj c 翻译成 swift,但是不能翻译一部分代码。 有人可以解释一下如何从 AVFondation 拍照或帮我翻译这个功能吗?
- (void) capImage { //method to capture image from AVCaptureSession video feed
AVCaptureConnection *videoConnection = nil;
for (AVCaptureConnection *connection in stillImageOutput.connections) {
for (AVCaptureInputPort *port in [connection inputPorts]) {
if ([[port mediaType] isEqual:AVMediaTypeVideo] ) {
videoConnection = connection;
break;
}
}
if (videoConnection) {
break;
}
}
NSLog(@"about to request a capture from: %@", stillImageOutput);
[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error) {
if (imageSampleBuffer != NULL) {
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
[self processImage:[UIImage imageWithData:imageData]];
}
}]; }
我做了什么但没有工作:
func takePhoto(sender:UIButton){
var videoConnection:AVCaptureConnection
var connection:AVCaptureConnection
var port : AVCaptureInputPort
for connection in stillImageOutput?.connections {
for (port in connection.inputPorts as AVCaptureInputPort) {
if port = AVMediaTypeVideo {
videoConnection = connection
break
}
}
if videoConnection {
break
}
}
stillImageOutput?.captureStillImageAsynchronouslyFromConnection(videoConnection, completionHandler: {(imageSampleBuffer, error) in
if (imageSampleBuffer != nil) {
var imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(imageSampleBuffer as CMSampleBuffer)
var image: UIImage = UIImage(data: imageData)
}
})
}
有人可以帮我吗?
【问题讨论】:
标签: ios swift avfoundation