feat: Video Codec Option for recording video (#645)
* add video codec value * add types * use `recommendedVideoSettings` method instead * lint * refactor for better readability * add a method to get available codecs (ios) * imrove tsDoc description of the videoCodec option Co-authored-by: Marc Rousavy <marcrousavy@hotmail.com> * ios format Co-authored-by: Marc Rousavy <marcrousavy@hotmail.com>
This commit is contained in:
@@ -72,6 +72,26 @@ final class CameraViewManager: RCTViewManager {
|
||||
component.focus(point: CGPoint(x: x.doubleValue, y: y.doubleValue), promise: promise)
|
||||
}
|
||||
|
||||
@objc
|
||||
final func getAvailableVideoCodecs(_ node: NSNumber, fileType: String?, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
||||
withPromise(resolve: resolve, reject: reject) {
|
||||
let component = getCameraView(withTag: node)
|
||||
guard let videoOutput = component.videoOutput else {
|
||||
throw CameraError.session(SessionError.cameraNotReady)
|
||||
}
|
||||
|
||||
var parsedFileType = AVFileType.mov
|
||||
if fileType != nil {
|
||||
guard let parsed = try? AVFileType(withString: fileType!) else {
|
||||
throw CameraError.parameter(ParameterError.invalid(unionName: "fileType", receivedValue: fileType!))
|
||||
}
|
||||
parsedFileType = parsed
|
||||
}
|
||||
|
||||
return videoOutput.availableVideoCodecTypesForAssetWriter(writingTo: parsedFileType).map(\.descriptor)
|
||||
}
|
||||
}
|
||||
|
||||
@objc
|
||||
final func getAvailableCameraDevices(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
||||
withPromise(resolve: resolve, reject: reject) {
|
||||
|
||||
Reference in New Issue
Block a user