
Swiftycam은 쉬운 사진 및 비디오 캡처를위한 간단한 Snapchat 스타일 iOS 카메라 프레임 워크입니다. Swiftycam을 통해 사용자는 구성이 거의없는 동일한 세션에서 사진과 비디오를 모두 캡처 할 수 있습니다.
avfoundation에서 카메라보기 컨트롤러를 구성하는 것은 지루하고 시간이 많이 걸릴 수 있습니다. Swiftycam은 Avsession을 완전히 제어하는 View Controller의 하락입니다.
| Swiftycam | |
|---|---|
| Snapchat 스타일 미디어 캡처 | |
| iOS8+를 지원합니다 | |
| 이미지 캡처 | |
| 비디오 캡처 | |
| 수동 이미지 품질 설정 | |
| 전면 및 후면 카메라 지원 | |
| 전면 및 후면 플래시 | |
| 망막 플래시 지원 | |
| 수동 줌을 지원합니다 | |
| 수동 초점을 지원합니다 | |
| 낮은 조명 설정 | |
| 배경 오디오 지원 |
Swiftycam은 BSD 라이센스에 따라 제공됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.
Swiftycam은 Cocoapods를 통해 제공됩니다. 설치하려면 Podfile에 다음 줄을 추가하십시오.
pod "SwiftyCam" 이것을 Cartfile 에 추가하십시오
github "Awalz/SwiftyCam" ~> 2.2.1
$ carthage update SwiftyCam
소스 폴더의 내용을 프로젝트에 복사하기 만하면됩니다.
Swiftycam을 사용하는 것은 매우 간단합니다.
iOS 10부터 Apple은 NSCameraUsageDescription 및 NSMicrophoneUsageDescription 문자열의 추가 정보를 Application의 Plist에 필요로합니다. 예:
< key >NSCameraUsageDescription</ key >
< string >To Take Photos and Video</ string >
< key >NSMicrophoneUsageDescription</ key >
< string >To Record Audio With Video</ string >Cocoapods에서 Swiftycam을 설치하는 경우 모듈을 View Controller로 가져 오십시오.
import SwiftyCam Swiftycam은 드롭 인 편의 프레임 워크입니다. 카메라 인스턴스를 만들려면 새 UIViewController 서브 클래스를 만듭니다. UIViewController 서브 클래스 선언을 SwiftyCamViewController 로 바꾸십시오.
class MyCameraViewController : SwiftyCamViewController이것이 사진 및 비디오 캡처에 대한 avsession을 설정하는 데 필요한 전부입니다. Swiftycam은 사용자에게 카메라/마이크를 사용할 수있는 권한을 부여하고 장치 입력 및 출력을 모두 구성합니다.
Swiftycam은 미디어를 캡처하는 매우 편리한 방법을 제공합니다. Swiftycambutton은 UITapGestureRecognizer 로 사진을 캡처하고 UILongPressGestureRecognizer 로 비디오를 캡처합니다.
Swiftycambutton을 사용하려면 하나를 만들고 SwiftyCamviewController에 대의원을 할당하십시오.
let captureButton = SwiftyCamButton ( frame : buttonFrame )
captureButton . delegate = self Swiftycam으로 미디어를 캡처하는 것은 매우 간단합니다. 사진을 캡처하려면 takePhoto 기능에 전화하십시오.
takePhoto ( ) 비디오를 캡처하는 것은 쉽습니다. 비디오 녹화를 시작하려면 startVideoRecording 함수를 호출하십시오.
startVideoRecording ( ) 비디오 캡처를 끝내려면 stopVideoRecording 함수를 호출하십시오.
stopVideoRecording ( ) Swiftycambutton 또는 수동으로 찍은 사진과 비디오를 획득하려면 SwiftyCamViewControllerDelegate 를 구현하고 cameraDelegate 를 View Controller 인스턴스로 설정해야합니다.
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
} 플래시 (Torch)는 flashEnabled 속성을 변경하여 활성화 할 수 있습니다.
flashEnabled = true이제 Flash는 전면 및 후면 직면 카메라를 위해 지원되었습니다.
사진의 경우 카메라는 스톡 iOS 카메라와 매우 유사하게 플래시됩니다. 비디오의 경우 Torch (Flash)는 비디오 캡처 기간을 활성화합니다.
Retina Flash를 지원하는 모델의 경우 전면 카메라는 이미지 캡처에 기본 플래시를 사용합니다. Retina Flash가 지원되지 않으면 가짜 망막 플래시는 Snapchat과 유사하게 사용됩니다.
전면 동영상의 경우 비디오 캡처 기간 동안 흰색, 85% 불투명 한보기가 비디오 피드를 통해 배치됩니다.
기본적으로 Swiftycam은 후면 카메라로 시작됩니다. viewDidLoad 에서 defaultCamera 속성을 변경하여 변경할 수 있습니다.
override func viewDidLoad ( ) {
super . viewDidLoad ( )
defaultCamera = . front
...
}Swiftycam은 전면 및 후면 카메라 모두에서 캡처를 지원합니다. 카메라를 전환하려면 기능을 호출하십시오.
switchCamera ( )전면 직면 카메라를 선택할 때 탭 투 포커스, 핀치 투 줌 및 카메라 플래시는 지원되지 않습니다. 비디오가 녹음되는 동안 비디오 전환이 현재 지원되지 않습니다.
Swiftycam을 사용하면 더블 탭 제스처로 카메라를 전환 할 수 있습니다. 이 기능을 비활성화하려면 doubleTapCameraSwitch 속성을 사용하십시오.
doubleTapCameraSwitch = falseSwiftycam에는 캡처의 기능을 구성하기위한 몇 가지 옵션이 있습니다.
비디오 품질은 SwiftyCamviewController의 VideoQuality 속성으로 설정할 수 있습니다. 사용 가능한 선택은 일치하는 avcapturessessionpreset 에 해당합니다.
| Videoquality | avcapturesessionpreset |
|---|---|
.high | avcapturepresethigh |
.medium | avcapturepresetmedium |
.low | avcapturepresetlow |
.resolution352x288 | avcapturesessionpreset352x288 |
.resolution640x480 | avcapturesessionpreset640x480 |
.resolution1280x720 | avcapturesessionpreset1280x720 |
.resolution1920x1080 | avcapturesessionpreset1920x1080 |
.resolution3840x2160 | avcapturesessionpreset3840x2160 |
.iframe960x540 | avcapturesessionspresetiframe960x540 |
.iframe1280x720 | avcapturesessionspresetiframe1280x720 |
기본값은 .high 입니다. 전면 카메라와 함께 사용하려면 .high가 항상 사용됩니다.
Swiftycambutton을 사용하는 경우 비디오 길이의 최대 비디오 지속 시간을 설정할 수 있습니다. 비디오 녹화는 시간 제한에 도달하고 Delegate Method SwiftyCamDidFinishRecordingVideo 가 호출되면 자동으로 중지됩니다. 이 값을 설정하려면 maximumVideoDuration 값을 변경하기 만하면됩니다.
maximumVideoDuration = 10.00.0 의 값은 Swiftycambutton을 통한 무제한 비디오 녹화를 허용합니다. 기본값은 0.0 입니다.
Swiftycam은 핀치와 팬 제스처를 통해 카메라 세션의 디지털 줌을 지원합니다. 제스처는 기본 iOS 앱과 유사하게 작동하며 최대 지원 줌 레벨로 확대됩니다. 카메라 줌은 후면 카메라에서만 지원됩니다. AvFoundation은 현재 전면 카메라 줌을 지원하지 않습니다. 이 기능을 비활성화하려면 pinchToZoom 속성을 변경하십시오.
pinchToZoom = false 기본적으로 pinchToZoom 활성화됩니다.
Swiftycam은 또한 수직 팬 제스처로 후면 카메라를 확대하는 기능을 지원합니다. 이 기능을 비활성화하려면 swipeToZoom 속성을 변경하십시오.
swipeToZoom = false 기본적으로 swipeToZoom 활성화되어 있습니다. 기본 제스처는 하향 스 와이프로 캡처 세션을 확대하고 상향 스 와이프로 확대합니다. swipeToZoomInverted 속성을 변경하여 반전 할 수 있습니다.
swipeToZoomInverted = true 후면 카메라가 확대 할 수있는 양을 제한 할 수도 있습니다. 이렇게하려면 maxZoomScale 속성을 사용하십시오.
maxZoomScale = 2.0 기본적으로 maxZoomScale Infinite 로 설정됩니다. 실제 최대 줌 레벨은 장치의 videomaxzoomfactor에 의해 결정됩니다.
Swiftycam은 기본적으로 비디오 미리보기에 초점을 맞추기 위해 탭을 지원합니다. Swiftycam은 세션의 초점 및 노출 수준을 탭 포인트로 설정합니다. TAP TO SET 노출은 두 카메라에서 모두 지원되지만 TAP TO FOCUS는 후면 카메라에서만 지원됩니다. Swiftycam이 탭 포인트에서 상당한 움직임을 감지하면 자동 초점과 자동 노출이 재개됩니다. 이 기능을 비활성화하려면 tapToFocus 속성을 변경하십시오.
tapToFocus = false 기본적으로 tapToFocus 활성화됩니다. 초점을 맞추는 탭이 시작될 때 화면에 애니메이션을 표시하려면 SwiftyCamDidFocusAtPoint(focusPoint:) 을 사용하여 탭의 좌표를 얻고 자신만의 탭 애니메이션을 제공 할 수 있습니다.
기본적으로 Swiftycam은 사진 방향을 초상화로 설정합니다. 조경 이미지를 지원하기 위해 캡처 사진의 방향을 보존하려면 shouldUseDeviceOrientation 속성을 사용하십시오.
shouldUseDeviceOrientation = true Swiftycam은 백그라운드 오디오가 세션 내에서 계속 플레이하고 비디오 녹화로 캡처 할 수있는 기능을 가지고 있습니다. 기본적으로 이것은 활성화됩니다. 이 기능을 비활성화하려면 allowBackgroundAudio 속성을 변경하십시오.
allowBackgroundAudio = false 지원되는 모델 (iPhone 5 및 5C)의 경우 avcapturedevice는 캡처 세션이 저조도 영역에 있음을 감지 할 때 저조도 부스트를 지원합니다. 기본적으로 이것은 true로 설정됩니다. lowLightBoost 변수로 수정할 수 있습니다.
lowLightBoost = false사용자가 처음으로 SwiftyCamviewController를 시작하면 카메라 및 마이크에 대한 액세스 권한을 부여하라는 메시지가 표시됩니다. 기본적으로 사용자가 하드웨어 액세스를 거부하면 SwiftyCam은 iOS 설정 응용 프로그램 내부의 앱 개인 정보 설정에 대한 프롬프트를 제공합니다.
기타 속성 :
isCameraFlashOn 부울isVideoRecording 부울isSessionRunning 부울currentCamera 카메라 선택질문, 요청 또는 개선 사항이 있으시면 풀 요청을 제출하거나 문제를 만들거나 직접 연락하십시오.
Andrew Walz [email protected]