
Swiftycam adalah AA sederhana, kerangka kerja kamera iOS bergaya Snapchat untuk pengambilan foto dan video yang mudah. SwiftyCam memungkinkan pengguna untuk mengambil foto dan video dari sesi yang sama dengan sedikit konfigurasi.
Mengkonfigurasi pengontrol tampilan kamera di avfoundation bisa membosankan dan memakan waktu. Swiftycam adalah penurunan pengontrol tampilan yang memberikan kontrol penuh atas avsession.
| Swiftycam | |
|---|---|
| Penangkapan media bergaya Snapchat | |
| Dukung iOS8+ | |
| Capture Capture | |
| Video Capture | |
| Pengaturan Kualitas Gambar Manual | |
| Dukungan Kamera Depan dan Belakang | |
| Flash depan dan belakang | |
| Dukungan Flash Retina | |
| Mendukung zoom manual | |
| Mendukung fokus manual | |
| Pengaturan cahaya rendah | |
| Dukungan audio latar belakang |
Swiftycam tersedia di bawah lisensi BSD. Lihat file lisensi untuk info lebih lanjut.
Swiftycam tersedia melalui cocoapods. Untuk menginstalnya, cukup tambahkan baris berikut ke podfile Anda:
pod "SwiftyCam" Tambahkan ini ke Cartfile
github "Awalz/SwiftyCam" ~> 2.2.1
$ carthage update SwiftyCam
Cukup salin konten folder sumber ke dalam proyek Anda.
Menggunakan Swiftycam sangat sederhana.
Pada iOS 10, Apple memerlukan additon string NSCameraUsageDescription dan string NSMicrophoneUsageDescription ke info. Plist aplikasi Anda. Contoh:
< key >NSCameraUsageDescription</ key >
< string >To Take Photos and Video</ string >
< key >NSMicrophoneUsageDescription</ key >
< string >To Record Audio With Video</ string >Jika Anda menginstal SwiftyCam dari Cocoapods, pastikan untuk mengimpor modul ke pengontrol tampilan Anda:
import SwiftyCam Swiftycam adalah kerangka kerja kenyamanan drop-in. Untuk membuat instance kamera, buat subkelas UIViewController baru. Ganti deklarasi subkelas UIViewController dengan SwiftyCamViewController :
class MyCameraViewController : SwiftyCamViewControllerHanya itu yang diperlukan untuk mengatur avsession untuk pengambilan foto dan video. SwiftyCam akan meminta izin pengguna untuk menggunakan kamera/mikrofon, dan mengkonfigurasi input dan output perangkat.
Swiftycam hadir dengan metode yang sangat nyaman untuk menangkap media. Swiftycambutton mengambil foto dengan UITapGestureRecognizer dan merekam video dengan UILongPressGestureRecognizer
Untuk menggunakan SwiftyCambutton, cukup buat satu dan tetapkan delegasi ke SwiftyCamViewController Anda:
let captureButton = SwiftyCamButton ( frame : buttonFrame )
captureButton . delegate = self Menangkap media dengan Swiftycam sangat sederhana. Untuk mengambil foto, cukup panggil fungsi takePhoto :
takePhoto ( ) Menangkap video sama mudahnya. Untuk mulai merekam video, hubungi fungsi startVideoRecording :
startVideoRecording ( ) Untuk mengakhiri pengambilan video, hubungi fungsi stopVideoRecording :
stopVideoRecording ( ) Untuk memperoleh foto dan video yang diambil oleh Swiftycambutton atau secara manual, Anda harus mengimplementasikan SwiftyCamViewControllerDelegate dan atur cameraDelegate ke instance pengontrol tampilan Anda:
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
} Flash (obor) dapat diaktifkan dengan mengubah properti flashEnabled :
flashEnabled = trueFlash sekarang didukung untuk kamera menghadap ke depan dan belakang.
Untuk foto, kamera akan berkedip seperti kamera iOS stok. Untuk video, obor (flash) akan memungkinkan untuk durasi pengambilan video.
Untuk model yang mendukung retina flash, kamera depan akan menggunakan flash default untuk pengambilan gambar. Jika retina flash tidak didukung, flash retina palsu digunakan mirip dengan Snapchat.
Untuk video yang menghadap ke depan, tampilan putih, 85% buram akan ditempatkan di atas umpan video selama durasi pengambilan video.
Secara default, Swiftycam akan diluncurkan ke kamera yang menghadap ke belakang. Ini dapat diubah dengan mengubah properti defaultCamera di viewDidLoad :
override func viewDidLoad ( ) {
super . viewDidLoad ( )
defaultCamera = . front
...
}Swiftycam mendukung penangkapan dari kamera depan dan belakang. Untuk mengganti kamera, hubungi fungsi:
switchCamera ( )Tap-to-focus, pinch-to-zoom dan flash kamera tidak didukung ketika kamera menghadap depan dipilih. Beralih video saat video sedang direkam saat ini tidak didukung
Swiftycam juga memungkinkan pengalihan antar kamera dengan gerakan tap ganda. Untuk menonaktifkan fitur ini, gunakan properti doubleTapCameraSwitch :
doubleTapCameraSwitch = falseSwiftyCam memiliki beberapa opsi untuk mengkonfigurasi fungsi penangkapan:
Kualitas video dapat ditetapkan oleh properti kualitas video SwiftyCamViewController. Pilihan yang tersedia sesuai dengan AVCapturesSessionPreset yang cocok:
| Kualitas video | AvCapturesessionPreset |
|---|---|
.high | AvCapturePresethigh |
.medium | AvCapturePresetMedium |
.low | AvCapturePresetlow |
.resolution352x288 | AvCapturesessionPreset352x288 |
.resolution640x480 | AvCapturesessionPreset640x480 |
.resolution1280x720 | AvCapturesessionPreset1280x720 |
.resolution1920x1080 | AvCapturesessionPreset1920x1080 |
.resolution3840x2160 | AvCapturesessionPreset3840x2160 |
.iframe960x540 | AvCapturesSessionPresetifRame960x540 |
.iframe1280x720 | AvCapturesessionPresetifRame1280x720 |
Nilai default adalah .high . Untuk digunakan dengan kamera yang menghadap ke depan ,. Tinggi akan selalu digunakan.
Jika menggunakan SwiftyCambutton, Anda dapat menetapkan durasi video maksimum untuk panjang video. Rekaman video akan saya secara otomatis berhenti setelah batas waktu telah tercapai dan metode delegasi SwiftyCamDidFinishRecordingVideo akan dipanggil. Untuk mengatur nilai ini, cukup ubah nilai maximumVideoDuration :
maximumVideoDuration = 10.0Nilai 0,0 akan memungkinkan perekaman video tanpa batas melalui Swiftycambutton. Nilai defaultnya adalah 0,0 .
SwiftyCam mendukung zoom digital sesi kamera melalui gerak pinch dan panci. Gestures bekerja mirip dengan aplikasi iOS default dan akan memperbesar ke tingkat zoom yang didukung maksimum. Zoom kamera hanya didukung di kamera menghadap ke belakang. Avfoundation saat ini tidak mendukung zoom kamera yang menghadap ke depan. Untuk menonaktifkan fitur ini, ubah properti pinchToZoom :
pinchToZoom = false Secara default, pinchToZoom diaktifkan.
Swiftycam juga mendukung kemampuan untuk memperbesar kamera menghadap ke belakang dengan gerakan panci vertikal. Untuk menonaktifkan fitur ini, ubah properti swipeToZoom :
swipeToZoom = false Secara default, swipeToZoom diaktifkan. Gerakan default memperbesar sesi penangkapan dengan gesekan ke bawah, dan memperbesar dengan gesekan ke atas. Ini dapat dibalik dengan mengubah properti swipeToZoomInverted :
swipeToZoomInverted = true Anda juga dapat membatasi jumlah yang dapat diperbesar oleh kamera belakang. Untuk melakukan ini, gunakan properti maxZoomScale :
maxZoomScale = 2.0 Secara default, maxZoomScale diatur ke Infinite . Level zoom maksimum aktual ditentukan oleh videomaxzoomfactor perangkat.
Swiftycam, secara default, dukungan tap untuk fokus pada pratinjau video. Swiftycam akan menetapkan tingkat fokus dan paparan sesi ke titik yang disadap. Sementara tap untuk mengatur eksposur didukung pada kedua kamera, tap to focus hanya didukung pada kamera menghadap ke belakang. Fokus otomatis dan auto -paparan akan dilanjutkan setelah Swiftycam mendeteksi pergerakan yang signifikan dari titik yang disadap. Untuk menonaktifkan fitur ini, ubah properti tapToFocus :
tapToFocus = false Secara default, tapToFocus diaktifkan. Jika Anda ingin menampilkan animasi di layar saat tap to focus dimulai, Anda dapat menggunakan SwiftyCamDidFocusAtPoint(focusPoint:) Untuk mendapatkan koordinat TAP dan berikan animasi ketuk Anda sendiri
Secara default, Swiftycam akan mengatur orientasi foto menjadi potret. Jika Anda ingin mempertahankan orientasi foto -foto pengambilan untuk memungkinkan dukungan untuk gambar lansekap, gunakan properti shouldUseDeviceOrientation :
shouldUseDeviceOrientation = true SwiftyCam memiliki kemampuan untuk memungkinkan latar belakang audio untuk terus bermain dalam sesi, dan ditangkap oleh rekaman video. Secara default, ini diaktifkan. Jika Anda ingin menonaktifkan fitur ini, ubah properti allowBackgroundAudio :
allowBackgroundAudio = false Untuk model yang didukung (iPhone 5 dan 5C), AVCapturedEvice mendukung dorongan cahaya rendah ketika terdeteksi bahwa sesi penangkapan berada di area cahaya rendah. Secara default, ini diatur ke True. Ini dapat dimodifikasi dengan variabel lowLightBoost :
lowLightBoost = falseKetika pengguna terlebih dahulu meluncurkan SwiftyCamViewController, mereka akan diminta untuk izin untuk akses ke kamera dan mikrofon. Secara default, jika pengguna menolak akses ke perangkat keras, SwiftyCam akan memberikan prompt ke pengaturan privasi aplikasi di dalam aplikasi pengaturan iOS.
Properti Lainnya:
isCameraFlashOn - BOOLEANisVideoRecording - BooleanisSessionRunning - BOOLEANcurrentCamera - CameraselectionJika Anda memiliki pertanyaan, permintaan, atau peningkatan, jangan ragu untuk mengirimkan permintaan tarik, membuat masalah, atau hubungi saya secara langsung:
Andrew Walz [email protected]