Commit c8a3100b by Daniel Dahan

updated CaptureSession internals for setting modes, with example UI update

parent 12d8b112
{
"images" : [
{
"idiom" : "universal",
"filename" : "ic_switch_camera_white.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_switch_camera_white@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_switch_camera_white@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
...@@ -127,7 +127,7 @@ class ViewController: UIViewController, CapturePreviewViewDelegate, CaptureSessi ...@@ -127,7 +127,7 @@ class ViewController: UIViewController, CapturePreviewViewDelegate, CaptureSessi
:name: prepareSwitchCameraButton :name: prepareSwitchCameraButton
*/ */
private func prepareSwitchCameraButton() { private func prepareSwitchCameraButton() {
let img: UIImage? = UIImage(named: "ic_switch_camera_white") let img: UIImage? = UIImage(named: "ic_camera_front_white")
switchCameraButton.pulseColor = MaterialColor.white switchCameraButton.pulseColor = MaterialColor.white
switchCameraButton.pulseFill = true switchCameraButton.pulseFill = true
switchCameraButton.setImage(img, forState: .Normal) switchCameraButton.setImage(img, forState: .Normal)
...@@ -139,6 +139,8 @@ class ViewController: UIViewController, CapturePreviewViewDelegate, CaptureSessi ...@@ -139,6 +139,8 @@ class ViewController: UIViewController, CapturePreviewViewDelegate, CaptureSessi
:name: prepareFlashButton :name: prepareFlashButton
*/ */
private func prepareFlashButton() { private func prepareFlashButton() {
captureView.captureSession.flashMode = .Auto
let img: UIImage? = UIImage(named: "ic_flash_auto_white") let img: UIImage? = UIImage(named: "ic_flash_auto_white")
flashButton.pulseColor = MaterialColor.white flashButton.pulseColor = MaterialColor.white
flashButton.pulseFill = true flashButton.pulseFill = true
...@@ -176,7 +178,18 @@ class ViewController: UIViewController, CapturePreviewViewDelegate, CaptureSessi ...@@ -176,7 +178,18 @@ class ViewController: UIViewController, CapturePreviewViewDelegate, CaptureSessi
:name: handleSwitchCameraButton :name: handleSwitchCameraButton
*/ */
internal func handleSwitchCameraButton(button: UIButton) { internal func handleSwitchCameraButton(button: UIButton) {
captureView.captureSession.switchCameras() var img: UIImage?
if .Back == captureView.captureSession.cameraPosition {
img = UIImage(named: "ic_camera_rear_white")
captureView.captureSession.switchCameras()
} else if .Front == captureView.captureSession.cameraPosition {
img = UIImage(named: "ic_camera_front_white")
captureView.captureSession.switchCameras()
}
switchCameraButton.setImage(img, forState: .Normal)
switchCameraButton.setImage(img, forState: .Highlighted)
} }
/** /**
...@@ -189,19 +202,16 @@ class ViewController: UIViewController, CapturePreviewViewDelegate, CaptureSessi ...@@ -189,19 +202,16 @@ class ViewController: UIViewController, CapturePreviewViewDelegate, CaptureSessi
case .Off: case .Off:
img = UIImage(named: "ic_flash_on_white") img = UIImage(named: "ic_flash_on_white")
captureView.captureSession.flashMode = .On captureView.captureSession.flashMode = .On
print("On")
case .On: case .On:
img = UIImage(named: "ic_flash_auto_white") img = UIImage(named: "ic_flash_auto_white")
captureView.captureSession.flashMode = .Off captureView.captureSession.flashMode = .Auto
print("Auto")
case .Auto: case .Auto:
img = UIImage(named: "ic_flash_off_white") img = UIImage(named: "ic_flash_off_white")
captureView.captureSession.flashMode = .On captureView.captureSession.flashMode = .Off
print("Off")
} }
captureView.flashButton?.setImage(img, forState: .Normal) flashButton.setImage(img, forState: .Normal)
captureView.flashButton?.setImage(img, forState: .Highlighted) flashButton.setImage(img, forState: .Highlighted)
} }
/** /**
......
...@@ -194,6 +194,13 @@ public class CaptureSession : NSObject, AVCaptureFileOutputRecordingDelegate { ...@@ -194,6 +194,13 @@ public class CaptureSession : NSObject, AVCaptureFileOutputRecordingDelegate {
} }
/** /**
:name: cameraPosition
*/
public var cameraPosition: AVCaptureDevicePosition {
return activeCamera!.position
}
/**
:name: focusMode :name: focusMode
*/ */
public var focusMode: AVCaptureFocusMode { public var focusMode: AVCaptureFocusMode {
...@@ -206,7 +213,7 @@ public class CaptureSession : NSObject, AVCaptureFileOutputRecordingDelegate { ...@@ -206,7 +213,7 @@ public class CaptureSession : NSObject, AVCaptureFileOutputRecordingDelegate {
do { do {
let device: AVCaptureDevice = activeCamera! let device: AVCaptureDevice = activeCamera!
try device.lockForConfiguration() try device.lockForConfiguration()
device.focusMode = focusMode device.focusMode = value
device.unlockForConfiguration() device.unlockForConfiguration()
} catch let e as NSError { } catch let e as NSError {
error = e error = e
...@@ -233,7 +240,7 @@ public class CaptureSession : NSObject, AVCaptureFileOutputRecordingDelegate { ...@@ -233,7 +240,7 @@ public class CaptureSession : NSObject, AVCaptureFileOutputRecordingDelegate {
do { do {
let device: AVCaptureDevice = activeCamera! let device: AVCaptureDevice = activeCamera!
try device.lockForConfiguration() try device.lockForConfiguration()
device.flashMode = flashMode device.flashMode = value
device.unlockForConfiguration() device.unlockForConfiguration()
} catch let e as NSError { } catch let e as NSError {
error = e error = e
...@@ -260,7 +267,7 @@ public class CaptureSession : NSObject, AVCaptureFileOutputRecordingDelegate { ...@@ -260,7 +267,7 @@ public class CaptureSession : NSObject, AVCaptureFileOutputRecordingDelegate {
do { do {
let device: AVCaptureDevice = activeCamera! let device: AVCaptureDevice = activeCamera!
try device.lockForConfiguration() try device.lockForConfiguration()
device.torchMode = torchMode device.torchMode = value
device.unlockForConfiguration() device.unlockForConfiguration()
} catch let e as NSError { } catch let e as NSError {
error = e error = e
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment