feat: Separate usecases (decouple microphone, video, photo) (#168)

* Add props

* add props (iOS)

* Add use-cases conditionally

* Update CameraView+RecordVideo.swift

* Update RecordingSession.swift

* reconfigure on change

* Throw correct errors

* Check for audio permission

* Move `#if` outward

* Throw appropriate errors

* Update CameraView+RecordVideo.swift

* fix Splashscreen

* Dynamic filePath

* Fix video extension

* add `avci` and `m4v` file types

* Fix RecordVideo errors

* Fix audio setup

* Enable `photo`, `video` and `audio`

* Check for `video={true}` in frameProcessor

* format

* Remove unused DispatchQueue

* Update docs

* Add `supportsPhotoAndVideoCapture`

* Fix view manager

* Fix error not being propagated

* Catch normal errors too

* Update DEVICES.mdx

* Update CAPTURING.mdx

* Update classdocs
This commit is contained in:
Marc Rousavy
2021-06-07 13:08:40 +02:00
committed by GitHub
parent 555474be7d
commit 72a1fad78e
30 changed files with 412 additions and 167 deletions

View File

@@ -10,11 +10,33 @@ import AVFoundation
import Foundation
extension AVFileType {
init(withString string: String) {
self.init(rawValue: string)
init(withString string: String) throws {
switch string {
case "mov":
self = .mov
case "mp4":
self = .mp4
case "avci":
self = .avci
case "m4v":
self = .m4v
default:
throw EnumParserError.invalidValue
}
}
var descriptor: String {
return rawValue
var descriptor: String? {
switch self {
case .mov:
return "mov"
case .mp4:
return "mp4"
case .avci:
return "avci"
case .m4v:
return "m4v"
default:
return nil
}
}
}

View File

@@ -20,8 +20,4 @@ enum EnumParserError: Error {
Raised when the descriptor does not match any of the possible values.
*/
case invalidValue
/**
Raised when no descriptor for the given enum is available.
*/
case noDescriptorAvailable
}