在Objective-C,你可以這樣做:如何在Swift 2中設置previewLayer.connection.videoOrientation?
if (UIDeviceOrientationIsPortrait(deviceOrientation) || UIDeviceOrientationIsLandscape(deviceOrientation)) {
AVCaptureVideoPreviewLayer *previewLayer = (AVCaptureVideoPreviewLayer *)self.previewView.layer;
previewLayer.connection.videoOrientation = (AVCaptureVideoOrientation)deviceOrientation;
}
但是在斯威夫特,什麼是這個最後一行翻譯的最好方法?您不能將「deviceOrientation作爲AVCaptureVideoOrientation」。
盡我所能想出迄今:
if(UIDeviceOrientationIsPortrait(deviceOrientation) || UIDeviceOrientationIsLandscape(deviceOrientation)) {
let myPreviewLayer: AVCaptureVideoPreviewLayer = self.previewLayer
myPreviewLayer.connection.videoOrientation = AVCaptureVideoOrientation.init(rawValue: deviceOrientation.rawValue-1)!
}
但這似乎不雅。 -1是存在的,因爲它只是在這一天結束的枚舉,而UIDeviceOrientation枚舉有一個「未知」一個在位0的AVCaptureVideoOrientation沒有......