DroidsOnRoids/CameraAVFoundation

Name: CameraAVFoundation

Owner: Droids On Roids

Description: null

Created: 2016-03-06 19:47:58.0

Updated: 2016-03-15 08:25:30.0

Pushed: 2016-03-13 21:47:34.0

Homepage: null

Size: 92

Language: Swift

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

alt text

CameraAVFoundation

W repozytorium znajduje si? klasa s?u??ca do osb?ugi kamery, któr? nale?y wykorzysta? do realizacji zadania. Klasa implemntuje protokó? CameraManagerProtocol zawieraj?cy metody klasowe. Dzi?ki temu bez konieczno?ci tworzenia obiektu mo?emy operowa? na kamerze, wykonuj?c na niej ró?ne operacje:

Utworzenie podgl?du z kamery telefonu
ic func generateCameraPreview(previewSize size: CGSize, completion: (sessionPreviewView: UIView?) -> ())

Metoda ta wykonuj? si? asynchronicznie, dlatego jednym z parametrów jest closure completion. Zwraca on nam widok z kamery. Otrzymany obiekt typu UIView, który nawiasem mówi?c jest opcjonalny, nale?y doda? do g?ównego widoku kontrollera. Mo?na to zrobi? nast?puj?co:

 screenFrame = UIScreen.mainScreen().bounds
 previewDimension = CGSize(width: CGRectGetWidth(screenFrame), height: CGRectGetHeight(screenFrame))

meraManager.generateCameraPreview(previewSize: previewDimension) { [unowned self] sessionPreview in
  guard let preview = sessionPreview else { return }
  self.view.addSubview(preview)

Prze??czanie si? mi?dzy przedni? i tylni? kamer?
ic func switchCamera(completion: (sessionPreviewView: UIView?) -> ())

Do tego celu nale?y wykorzysta? metod?, która równie? zwraca nam w closure widok z kamery. Tutaj jednak musimy zadba? o to ?eby usun?? poprzedni podgl?d i zast?pi? go widokiem z przeciwnej kamery. Podpowied?: przechowywa? aktualny widok z kamery jako zmienn? w klasie kontrolera. Dzi?ki temu mo?na go ?atwo usun?? z struktury widoku za pomoc?

.removeSubview(cameraPreview)

Do wywo?ywania tej metody u?yjmy akcji przycisku!

Obs?uga flasha
ic func toggleFlashMode(bool: Bool)

Ta metoda klasy CameraManager umo?liwia w??czenie lampy aparatu. W parametrze nale?y zdecydowa? czy chcemu j? w??czy? lub wy??czy?. Równiez i w tym przypadku warto w jaki? sposób przechowywa? w kontrollerze aktualny stan lampy b?yskowej. Tym bardziej w tym przypadku poniewa? przycisk b?dzie zmienia? kolor!

Zdj?cie
ic func takePhoto(completion: (UIImage?) -> ())

Ostatnia metoda, ale najwa?niejsza poniewa? zwraca nam zdj?cie. Równie? metoda asynchroniczna wymagaj?ca closure.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.