
Swiftycam เป็นเฟรมเวิร์กกล้อง iOS สไตล์ Snapchat ที่เรียบง่ายสำหรับการถ่ายภาพและวิดีโอได้ง่าย SwiftyCam ช่วยให้ผู้ใช้สามารถถ่ายภาพและวิดีโอจากเซสชันเดียวกันด้วยการกำหนดค่าน้อยมาก
การกำหนดค่าคอนโทรลเลอร์มุมมองกล้องใน Avfoundation อาจเป็นเรื่องน่าเบื่อและใช้เวลานาน Swiftycam เป็นตัวควบคุมมุมมองที่ลดลงซึ่งให้การควบคุม Avsession อย่างสมบูรณ์
| swiftycam | |
|---|---|
| การจับสื่อสไตล์ Snapchat | |
| สนับสนุน iOS8+ | |
| การจับภาพ | |
| การจับภาพวิดีโอ | |
| การตั้งค่าคุณภาพของภาพด้วยตนเอง | |
| รองรับกล้องด้านหน้าและด้านหลัง | |
| แฟลชด้านหน้าและด้านหลัง | |
| รองรับ Retina Flash | |
| รองรับการซูมด้วยตนเอง | |
| สนับสนุนการโฟกัสด้วยตนเอง | |
| การตั้งค่าแสงต่ำ | |
| การสนับสนุนเสียงพื้นหลัง |
Swiftycam มีให้บริการภายใต้ใบอนุญาต BSD ดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม
Swiftycam มีให้บริการผ่าน cocoapods หากต้องการติดตั้งเพียงเพิ่มบรรทัดต่อไปนี้ลงใน PodFile ของคุณ:
pod "SwiftyCam" เพิ่มสิ่งนี้ลงใน Cartfile
github "Awalz/SwiftyCam" ~> 2.2.1
$ carthage update SwiftyCam
เพียงคัดลอกเนื้อหาของโฟลเดอร์ต้นทางลงในโครงการของคุณ
การใช้ swiftycam นั้นง่ายมาก
ในฐานะ iOS 10 แอปเปิ้ลต้องใช้ additon ของ NSCameraUsageDescription และ NSMicrophoneUsageDescription strings ไปยัง info.plist ของแอปพลิเคชันของคุณ ตัวอย่าง:
< key >NSCameraUsageDescription</ key >
< string >To Take Photos and Video</ string >
< key >NSMicrophoneUsageDescription</ key >
< string >To Record Audio With Video</ string >หากคุณติดตั้ง swiftycam จาก cocoapods ให้แน่ใจว่าได้นำเข้าโมดูลลงในคอนโทรลเลอร์มุมมองของคุณ:
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
} แฟลช (คบเพลิง) สามารถเปิดใช้งานได้โดยการเปลี่ยนคุณสมบัติ flashEnabled :
flashEnabled = trueตอนนี้แฟลชได้รับการสนับสนุนสำหรับกล้องด้านหน้าและด้านหลัง
สำหรับภาพถ่ายกล้องจะกะพริบเหมือนกล้อง iOS สต็อก สำหรับวิดีโอไฟฉาย (แฟลช) จะเปิดใช้งานตลอดระยะเวลาของการจับวิดีโอ
สำหรับรุ่นที่รองรับ Retina Flash กล้องด้านหน้าจะใช้แฟลชเริ่มต้นสำหรับการจับภาพ หากไม่รองรับ Retina Flash จะใช้แฟลชเรตินา faux คล้ายกับ Snapchat
สำหรับวิดีโอที่หันหน้าไปทางด้านหน้าจะมีการวางมุมมองทึบแสงสีขาว 85% ไว้เหนือฟีดวิดีโอในช่วงระยะเวลาของการจับวิดีโอ
โดยค่าเริ่มต้น SwiftyCam จะเปิดตัวไปที่กล้องด้านหลัง สิ่งนี้สามารถเปลี่ยนแปลงได้โดยการเปลี่ยนคุณสมบัติ defaultCamera ใน viewDidLoad :
override func viewDidLoad ( ) {
super . viewDidLoad ( )
defaultCamera = . front
...
}Swiftycam รองรับการจับภาพจากกล้องด้านหน้าและด้านหลัง หากต้องการสลับกล้องโทรหาฟังก์ชัน:
switchCamera ( )ไม่รองรับ Tap-to-focus, pinch-to-zoom และ camera flash เมื่อเลือกกล้องด้านหน้า การสลับวิดีโอในขณะที่วิดีโอกำลังถูกบันทึกไม่ได้รับการสนับสนุนในขณะนี้
Swiftycam ยังช่วยให้สามารถสลับระหว่างกล้องด้วยท่าทางแตะสองครั้ง หากต้องการปิดใช้งานคุณสมบัตินี้ให้ใช้คุณสมบัติ doubleTapCameraSwitch :
doubleTapCameraSwitch = falseSwiftycam มีตัวเลือกมากมายสำหรับการกำหนดค่าการทำงานของการจับภาพ:
คุณภาพวิดีโอสามารถตั้งค่าได้โดยคุณสมบัติ คุณภาพวิดีโอ ของ SwiftyCamviewController ตัวเลือกที่มีอยู่นั้นสอดคล้องกับการจับคู่ avcapturesessionPreset :
| คุณภาพของวิดีโอ | Avcapturesessionpreset |
|---|---|
.high | avcapturepresethigh |
.medium | Avcapturepresetmedium |
.low | avcapturepresetlow |
.resolution352x288 | AvcapturesessionPreset352x288 |
.resolution640x480 | AvcapturesessionPreset640x480 |
.resolution1280x720 | AvcapturesessionPreset1280x720 |
.resolution1920x1080 | AvcapturesessionPreset1920x1080 |
.resolution3840x2160 | AvcapturesessionPreset3840x2160 |
.iframe960x540 | Avcapturesessionpresetiframe960x540 |
.iframe1280x720 | Avcapturesessionpresetiframe1280x720 |
ค่าเริ่มต้นคือ . สูง สำหรับใช้กับกล้องหน้าหันหน้าไปทาง. สูง จะถูกใช้เสมอ
หากใช้ swiftycambutton คุณสามารถตั้งค่าระยะเวลาวิดีโอสูงสุดสำหรับความยาวของวิดีโอ การบันทึกวิดีโอจะหยุดโดยอัตโนมัติเมื่อถึงขีด จำกัด เวลาและวิธีการของผู้แทน SwiftyCamDidFinishRecordingVideo จะถูกเรียก ในการตั้งค่านี้เพียงเปลี่ยนค่า maximumVideoDuration :
maximumVideoDuration = 10.0ค่า 0.0 จะอนุญาตให้บันทึกวิดีโอไม่ จำกัด ผ่าน Swiftycambutton ค่าเริ่มต้นคือ 0.0
SwiftyCam รองรับการซูมดิจิตอลของเซสชันกล้องผ่านท่าทางหยิกและแพน ท่าทางทำงานคล้ายกับแอพ iOS เริ่มต้นและจะซูมไปยังระดับการซูมที่รองรับสูงสุด การซูมกล้องได้รับการรองรับเฉพาะที่กล้องด้านหลัง Avfoundation ไม่รองรับการซูมกล้องด้านหน้า หากต้องการปิดใช้งานคุณสมบัตินี้ให้เปลี่ยนคุณสมบัติ pinchToZoom :
pinchToZoom = false โดยค่าเริ่มต้นเปิดใช้งาน pinchToZoom
Swiftycam ยังรองรับความสามารถในการซูมกล้องด้านหลังด้วยท่าทางแพนแนวตั้ง หากต้องการปิดการใช้งานคุณสมบัตินี้ให้เปลี่ยนคุณสมบัติ swipeToZoom :
swipeToZoom = false โดยค่าเริ่มต้น swipeToZoom จะเปิดใช้งาน ท่าทางเริ่มต้นซูมในเซสชันการจับภาพด้วยการปัดลงและซูมออกด้วยการปัดขึ้น สิ่งนี้สามารถย้อนกลับได้โดยการเปลี่ยนคุณสมบัติ swipeToZoomInverted :
swipeToZoomInverted = true นอกจากนี้คุณยังสามารถ จำกัด ปริมาณที่กล้องด้านหลังสามารถซูมได้ ในการทำเช่นนี้ให้ใช้คุณสมบัติ maxZoomScale :
maxZoomScale = 2.0 โดยค่าเริ่มต้น maxZoomScale ถูกตั้งค่าเป็น อนันต์ ระดับการซูมสูงสุดที่แท้จริงจะถูกกำหนดโดย videomaxzoomfactor ของอุปกรณ์
Swiftycam โดยค่าเริ่มต้นสนับสนุนแตะเพื่อมุ่งเน้นไปที่ตัวอย่างวิดีโอ Swiftycam จะกำหนดระดับโฟกัสและระดับการเปิดรับของเซสชันไปยังจุดเคาะ ในขณะที่การแตะเพื่อตั้งค่าการเปิดรับแสงได้รับการสนับสนุนในกล้องทั้งสองตัวแตะเพื่อโฟกัสได้รับการสนับสนุนเฉพาะในกล้องด้านหลัง Autofocus และ AutoExposure จะกลับมาทำงานอีกครั้งเมื่อ SwiftyCam ตรวจพบการเคลื่อนไหวที่สำคัญจากจุดเคาะ หากต้องการปิดการใช้งานคุณสมบัตินี้ให้เปลี่ยนคุณสมบัติ tapToFocus :
tapToFocus = false โดยค่าเริ่มต้น tapToFocus จะเปิดใช้งาน หากคุณต้องการแสดงภาพเคลื่อนไหวบนหน้าจอเมื่อมีการเริ่มต้นการโฟกัสคุณสามารถใช้ SwiftyCamDidFocusAtPoint(focusPoint:) เพื่อให้ได้พิกัดของการแตะ
โดยค่าเริ่มต้น SwiftyCam จะตั้งค่าการวางแนวภาพถ่ายให้เป็นแนวตั้ง หากคุณต้องการรักษาทิศทางของภาพถ่ายการถ่ายภาพเพื่อให้สามารถรองรับภาพภูมิทัศน์ให้ใช้คุณสมบัติ shouldUseDeviceOrientation
shouldUseDeviceOrientation = true Swiftycam มีความสามารถในการอนุญาตให้พื้นหลังมีการเล่นต่อไปภายในเซสชันและจะถูกบันทึกโดยการบันทึกวิดีโอ โดยค่าเริ่มต้นสิ่งนี้จะเปิดใช้งาน หากคุณต้องการปิดการใช้งานคุณสมบัตินี้ให้เปลี่ยนคุณสมบัติของ allowBackgroundAudio :
allowBackgroundAudio = false สำหรับรุ่นที่รองรับ (iPhone 5 และ 5C) AvcapturedEvice รองรับการเพิ่มแสงน้อยเมื่อตรวจพบว่าเซสชั่นการจับภาพอยู่ในพื้นที่แสงน้อย โดยค่าเริ่มต้นจะถูกตั้งค่าเป็นจริง สามารถแก้ไขได้ด้วยตัวแปร lowLightBoost :
lowLightBoost = falseเมื่อผู้ใช้เปิดตัว SwiftyCamviewController เป็นครั้งแรกพวกเขาจะได้รับอนุญาตให้เข้าถึงกล้องและไมโครโฟน โดยค่าเริ่มต้นหากผู้ใช้ปฏิเสธการเข้าถึงฮาร์ดแวร์ SwiftyCam จะให้พรอมต์สำหรับการตั้งค่าความเป็นส่วนตัวของแอปภายในแอปพลิเคชันการตั้งค่า iOS
คุณสมบัติอื่น ๆ :
isCameraFlashOn - บูลีนisVideoRecording - บูลีนisSessionRunning - บูลีนcurrentCamera - Cameraselectionหากคุณมีคำถามคำขอหรือการปรับปรุงใด ๆ อย่าลังเลที่จะส่งคำขอดึงสร้างปัญหาหรือติดต่อฉันด้วยตนเอง:
Andrew Walz [email protected]