
Swiftycam ist ein einfaches iOS-Kamera-Framework im Snapchat-Stil für einfache Fotos und Videoaufnahmen. Mit SWIFTYCAM können Benutzer sowohl Fotos als auch Videos aus derselben Sitzung mit sehr wenig Konfiguration erfassen.
Das Konfigurieren eines Camera View -Controllers in AvFoundation kann mühsam und zeitaufwändig sein. Swiftycam ist ein Rückgang des Sichtreglers, der die vollständige Kontrolle über die Avision bietet.
| SWIFTYCAM | |
|---|---|
| Medienerfassung im Snapchat-Stil | |
| Unterstützen Sie iOS8+ | |
| Bildaufnahme | |
| Videoaufnahme | |
| Manuelle Bildqualitätseinstellungen | |
| Vorder- und Rückfahrkamera -Unterstützung | |
| Vorder- und Hinterblitz | |
| Retina -Blitzunterstützung | |
| Unterstützt manuelle Zoom | |
| Unterstützt manuelle Fokus | |
| Schlechte Einstellung | |
| Hintergrund -Audiounterstützung |
Swiftycam ist im Rahmen der BSD -Lizenz erhältlich. Weitere Informationen finden Sie in der Lizenzdatei.
Swiftycam ist über Cocoapods erhältlich. Um es zu installieren, fügen Sie einfach die folgende Zeile zu Ihrem Podfile hinzu:
pod "SwiftyCam" Fügen Sie dies zu Cartfile hinzu
github "Awalz/SwiftyCam" ~> 2.2.1
$ carthage update SwiftyCam
Kopieren Sie einfach den Inhalt des Quellordners in Ihr Projekt.
Die Verwendung von Swiftycam ist sehr einfach.
Ab iOS 10 benötigt Apple das Additon der NSCameraUsageDescription und NSMicrophoneUsageDescription -STAGE an die Info.plist Ihrer Anwendung. Beispiel:
< key >NSCameraUsageDescription</ key >
< string >To Take Photos and Video</ string >
< key >NSMicrophoneUsageDescription</ key >
< string >To Record Audio With Video</ string >Wenn Sie Swiftycam von Cocoapods installieren, importieren Sie das Modul in Ihren Ansichtscontroller:
import SwiftyCam Swiftycam ist ein Einsatzrahmen. Um eine Kamera -Instanz zu erstellen, erstellen Sie eine neue UIViewController -Unterklasse. Ersetzen Sie die UIViewController -Unterklasse -Deklaration durch SwiftyCamViewController :
class MyCameraViewController : SwiftyCamViewControllerDas ist alles, was erforderlich ist, um die Avsession für Foto- und Videoaufnahmen einzurichten. Swiftycam fordert den Benutzer zur Verwendung der Kamera/des Mikrofons auf und konfigurieren sowohl die Geräteeingänge als auch die Ausgänge.
Swiftycam verfügt über eine sehr bequeme Methode zur Erfassung von Medien. SwiftyCambutton fängt Fotos mit einem UITapGestureRecognizer auf und fängt Videos mit einem UILongPressGestureRecognizer auf
Um ein SwiftyCambutton zu verwenden, erstellen Sie einfach einen und weisen Sie den Delegierten Ihrem SwiftycamviewController zu: zuweisen:
let captureButton = SwiftyCamButton ( frame : buttonFrame )
captureButton . delegate = self Das Erfassen von Medien mit Swiftycam ist sehr einfach. Um ein Foto zu erfassen, rufen Sie einfach die takePhoto -Funktion an:
takePhoto ( ) Das Aufnehmen von Videos ist genauso einfach. Rufen Sie die startVideoRecording -Funktion an:
startVideoRecording ( ) Um die Erfassung eines Videos zu beenden, rufen Sie die stopVideoRecording -Funktion an:
stopVideoRecording ( ) Um die Fotos und Videos entweder vom SwiftyCambutton oder manuell zu erwerben, müssen Sie die SwiftyCamViewControllerDelegate implementieren und die cameraDelegate auf Ihre Ansichts -Controller -Instanz einstellen:
class MyCameraViewController : SwiftyCamViewController , SwiftyCamViewControllerDelegate {
override func viewDidLoad ( ) {
super . viewDidLoad ( )
cameraDelegate = self
}
...
} func swiftyCam ( _ swiftyCam : SwiftyCamViewController , didTake photo : UIImage ) {
// Called when takePhoto() is called or if a SwiftyCamButton initiates a tap gesture
// Returns a UIImage captured from the current session
}
func swiftyCam ( _ swiftyCam : SwiftyCamViewController , didBeginRecordingVideo camera : SwiftyCamViewController . CameraSelection ) {
// Called when startVideoRecording() is called
// Called if a SwiftyCamButton begins a long press gesture
}
func swiftyCam ( _ swiftyCam : SwiftyCamViewController , didFinishRecordingVideo camera : SwiftyCamViewController . CameraSelection ) {
// Called when stopVideoRecording() is called
// Called if a SwiftyCamButton ends a long press gesture
}
func swiftyCam ( _ swiftyCam : SwiftyCamViewController , didFinishProcessVideoAt url : URL ) {
// Called when stopVideoRecording() is called and the video is finished processing
// Returns a URL in the temporary directory where video is stored
}
func swiftyCam ( _ swiftyCam : SwiftyCamViewController , didFocusAtPoint point : CGPoint ) {
// Called when a user initiates a tap gesture on the preview layer
// Will only be called if tapToFocus = true
// Returns a CGPoint of the tap location on the preview layer
}
func swiftyCam ( _ swiftyCam : SwiftyCamViewController , didChangeZoomLevel zoom : CGFloat ) {
// Called when a user initiates a pinch gesture on the preview layer
// Will only be called if pinchToZoomn = true
// Returns a CGFloat of the current zoom level
}
func swiftyCam ( _ swiftyCam : SwiftyCamViewController , didSwitchCameras camera : SwiftyCamViewController . CameraSelection ) {
// Called when user switches between cameras
// Returns current camera selection
} Der Blitz (Taschenlampe) kann aktiviert werden, indem die flashEnabled Eigenschaft geändert wird:
flashEnabled = trueFlash wird jetzt für vordere und hintere Kameras unterstützt.
Für Fotos blinkt die Kamera ähnlich wie die serienmäßige iOS -Kamera. Für Video aktiviert die Taschenlampe (Flash) für die Dauer der Videoaufnahme.
Für Modelle, die Retina -Blitz unterstützen, verwendet die Frontkamera den Standardblitz für die Bildaufnahme. Wenn der Blitz von Retina nicht unterstützt wird, wird ein Faux -Retina -Blitz ähnlich wie Snapchat verwendet.
Für vordere Videos wird eine weiße, undurchsichtige Ansicht von 85% über den Video -Feed für die Dauer der Videoaufnahme platziert.
Standardmäßig startet Swiftycam mit der hinteren Kamera. Dies kann geändert werden, indem die defaultCamera -Eigenschaft in viewDidLoad geändert wird:
override func viewDidLoad ( ) {
super . viewDidLoad ( )
defaultCamera = . front
...
}Swiftycam unterstützt die Erfassung sowohl von den Vorder- als auch von den hinteren Kameras. Um Kameras zu wechseln, rufen Sie die Funktion auf:
switchCamera ( )Tap-to-Focus, Pinch-to-Zoom und Camera Blitz werden nicht unterstützt, wenn die vordere Kamera ausgewählt ist. Das Schalten des Videos während des Aufnehmens von Videos wird derzeit nicht unterstützt
Swiftycam ermöglicht auch das Schalten zwischen Kameras mit einer Doppelhack -Geste. Um diese Funktion zu deaktivieren, verwenden Sie die doubleTapCameraSwitch -Eigenschaft:
doubleTapCameraSwitch = falseSwiftycam verfügt über mehrere Optionen zur Konfiguration der Funktionalität der Erfassung:
Die Videoqualität kann von der Videoqualitätseigenschaft von SwiftycamviewController festgelegt werden. Die verfügbaren Auswahlmöglichkeiten entsprechen dem passenden AvcaptureSessionPreset :
| Videoqualität | AvcaptureSessionPreset |
|---|---|
.high | AvcapturePreSethigh |
.medium | AvcapturePresetmedium |
.low | AvcapturePresetlow |
.resolution352x288 | AvcaptureSessionPreset352x288 |
.resolution640x480 | AvcaptureSessionPreset640x480 |
.resolution1280x720 | AvcaptureSessionPreset1280x720 |
.resolution1920x1080 | AvcaptureSessionPreset1920x1080 |
.resolution3840x2160 | AvcaptureSessionPreset3840x2160 |
.iframe960x540 | AvcaptureSessionPresetiframe960x540 |
.iframe1280x720 | AvcaptureSessionPresetiframe1280x720 |
Der Standardwert ist . Zur Verwendung mit der vorne ausgerichteten Kamera wird immer verwendet .
Wenn Sie einen SwiftyCambutton verwenden, können Sie eine maximale Videodauer für die Videolänge festlegen. Die Videoaufzeichnung werde mich automatisch gestoppt, sobald die Frist erreicht wurde und die Delegate -Methode SwiftyCamDidFinishRecordingVideo aufgerufen wird. Um diesen Wert festzulegen, ändern Sie einfach den maximumVideoDuration -Wert:
maximumVideoDuration = 10.0Ein Wert von 0,0 ermöglicht eine unbegrenzte Videoaufzeichnung über das SwiftyCambutton. Der Standardwert beträgt 0,0 .
Swiftycam unterstützt den digitalen Zoom der Kamerasitzung über Pinch und Pan Gesten. Die Gesten funktionieren ähnlich wie die Standard -iOS -App und vergrößern den maximal unterstützten Zoomebene. Camera Zoom wird nur auf der hinteren Kamera unterstützt. AvFoundation unterstützt derzeit keine vordere Kamera -Zoom. Um diese Funktion zu deaktivieren, ändern Sie die pinchToZoom -Eigenschaft:
pinchToZoom = false Standardmäßig ist pinchToZoom aktiviert.
Swiftycam unterstützt auch die Fähigkeit, die hintere Kamera mit vertikalen Pfannengesten zu zoomen. Um diese Funktion zu deaktivieren, ändern Sie die swipeToZoom -Eigenschaft:
swipeToZoom = false Standardmäßig ist swipeToZoom aktiviert. Die Standardgesten vergrößern in der Capture -Sitzung mit einem Abwärtsschlag und vergrößern mit einem Aufwärtsschlag. Dies kann umgekehrt werden, indem die swipeToZoomInverted -Eigenschaft geändert wird:
swipeToZoomInverted = true Sie können auch die Menge einschränken, die die hintere Kamera zoomen kann. Verwenden Sie dazu die maxZoomScale -Immobilie:
maxZoomScale = 2.0 Standardmäßig ist maxZoomScale auf unendlich eingestellt. Die tatsächliche maximale Zoomebene wird durch den Videomaxzoomfaktor des Geräts bestimmt.
Standardmäßig unterstützen Swiftycam Tippen Sie auf die Videovorschau. Swiftycam setzt den Fokus- und Expositionsniveau der Sitzung auf den angegebenen Punkt. Während auf beiden Kameras Tipp zum Set -Set -Exposition unterstützt wird, wird Tap to Focus nur auf der hinteren Gesichtskameras unterstützt. Autofokus und Autoxposition werden wieder aufgenommen, sobald Swiftycam eine signifikante Bewegung aus dem angepassten Punkt erkennt. Um diese Funktion zu deaktivieren, ändern Sie die tapToFocus -Eigenschaft:
tapToFocus = false Standardmäßig ist tapToFocus aktiviert. Wenn Sie eine Animation auf dem Bildschirm anzeigen möchten, wenn ein Fokussierungstipp initiiert wird, können Sie den SwiftyCamDidFocusAtPoint(focusPoint:) verwenden, um die Koordinaten des Tippens zu erhalten und Ihre eigene Tap -Animation bereitzustellen
Standardmäßig setzt Swiftycam die Fotoorientierung auf Porträt. Wenn Sie die Orientierung der Capture -Fotos beibehalten möchten, um Landschaftsbilder zu unterstützen, verwenden Sie die Eigenschaft shouldUseDeviceOrientation :
shouldUseDeviceOrientation = true Swiftycam kann das Hintergrund -Audio in der Sitzung fortsetzen und von der Videoaufzeichnung erfasst werden. Standardmäßig ist dies aktiviert. Wenn Sie diese Funktion deaktivieren möchten, ändern Sie das Eigentum allowBackgroundAudio :
allowBackgroundAudio = false Für unterstützte Modelle (iPhone 5 und 5C) unterstützt Avcapturedevice einen schlechten Lichtverhältnis, wenn festgestellt wird, dass sich die Capture -Sitzung in einem schlechten Lichtbereich befindet. Standardmäßig ist dies auf True festgelegt. Es kann mit der lowLightBoost -Variablen geändert werden:
lowLightBoost = falseWenn ein Benutzer SwiftycamviewController erster Start startet, wird er zur Erlaubnis zum Zugriff auf die Kameras und Mikrofone aufgefordert. Wenn ein Benutzer den Zugriff auf die Hardware ablehnt, stellt Swiftycam standardmäßig eine Eingabeaufforderung für die Datenschutzeinstellungen der App in der Anwendung "iOS -Einstellungen" an.
Andere Eigenschaften:
isCameraFlashOn - BooleanisVideoRecording - booleanisSessionRunning - BooleancurrentCamera - KamerasauswahlWenn Sie Fragen, Anfragen oder Verbesserungen haben, können Sie eine Pull -Anfrage stellen, ein Problem erstellen oder mich persönlich kontaktieren:
Andrew Walz [email protected]