@capgo/camera-preview 3.2.8 → 3.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CapgoCameraPreview.podspec +1 -1
- package/README.md +263 -46
- package/android/.gradle/7.4.2/checksums/checksums.lock +0 -0
- package/android/.gradle/7.4.2/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/7.4.2/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.4.2/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.4.2/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.4.2/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.4.2/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.4.2/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build.gradle +8 -8
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +2 -3
- package/android/gradlew +182 -108
- package/android/src/main/java/com/ahm/capacitor/camera/preview/CameraActivity.java +5 -7
- package/android/src/main/java/com/ahm/capacitor/camera/preview/CameraPreview.java +17 -9
- package/dist/docs.json +407 -0
- package/dist/esm/definitions.d.ts +12 -6
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/web.d.ts +6 -4
- package/dist/esm/web.js +98 -82
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +165 -0
- package/dist/plugin.cjs.js.map +1 -0
- package/dist/plugin.js +168 -0
- package/dist/plugin.js.map +1 -0
- package/ios/Plugin/CameraController.swift +19 -1
- package/ios/Plugin/Plugin.m +1 -0
- package/ios/Plugin/Plugin.swift +42 -7
- package/ios/Plugin.xcodeproj/project.pbxproj +10 -4
- package/ios/Podfile +1 -1
- package/ios/Podfile.lock +4 -4
- package/package.json +40 -35
|
@@ -323,7 +323,25 @@ extension CameraController {
|
|
|
323
323
|
return supportedFlashModesAsStrings
|
|
324
324
|
|
|
325
325
|
}
|
|
326
|
+
func getHorizontalFov() throws -> Float {
|
|
327
|
+
var currentCamera: AVCaptureDevice?
|
|
328
|
+
switch currentCameraPosition {
|
|
329
|
+
case .front:
|
|
330
|
+
currentCamera = self.frontCamera!
|
|
331
|
+
case .rear:
|
|
332
|
+
currentCamera = self.rearCamera!
|
|
333
|
+
default: break
|
|
334
|
+
}
|
|
326
335
|
|
|
336
|
+
guard
|
|
337
|
+
let device = currentCamera
|
|
338
|
+
else {
|
|
339
|
+
throw CameraControllerError.noCamerasAvailable
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
return device.activeFormat.videoFieldOfView
|
|
343
|
+
|
|
344
|
+
}
|
|
327
345
|
func setFlashMode(flashMode: AVCaptureDevice.FlashMode) throws {
|
|
328
346
|
var currentCamera: AVCaptureDevice?
|
|
329
347
|
switch currentCameraPosition {
|
|
@@ -487,7 +505,7 @@ extension CameraController: AVCapturePhotoCaptureDelegate {
|
|
|
487
505
|
public func photoOutput(_ captureOutput: AVCapturePhotoOutput, didFinishProcessingPhoto photoSampleBuffer: CMSampleBuffer?, previewPhoto previewPhotoSampleBuffer: CMSampleBuffer?,
|
|
488
506
|
resolvedSettings: AVCaptureResolvedPhotoSettings, bracketSettings: AVCaptureBracketedStillImageSettings?, error: Swift.Error?) {
|
|
489
507
|
if let error = error { self.photoCaptureCompletionBlock?(nil, error) } else if let buffer = photoSampleBuffer, let data = AVCapturePhotoOutput.jpegPhotoDataRepresentation(forJPEGSampleBuffer: buffer, previewPhotoSampleBuffer: nil),
|
|
490
|
-
|
|
508
|
+
let image = UIImage(data: data) {
|
|
491
509
|
self.photoCaptureCompletionBlock?(image.fixedOrientation(), nil)
|
|
492
510
|
} else {
|
|
493
511
|
self.photoCaptureCompletionBlock?(nil, CameraControllerError.unknown)
|
package/ios/Plugin/Plugin.m
CHANGED
|
@@ -10,6 +10,7 @@ CAP_PLUGIN(CameraPreview, "CameraPreview",
|
|
|
10
10
|
CAP_PLUGIN_METHOD(captureSample, CAPPluginReturnPromise);
|
|
11
11
|
CAP_PLUGIN_METHOD(flip, CAPPluginReturnPromise);
|
|
12
12
|
CAP_PLUGIN_METHOD(getSupportedFlashModes, CAPPluginReturnPromise);
|
|
13
|
+
CAP_PLUGIN_METHOD(getHorizontalFov, CAPPluginReturnPromise);
|
|
13
14
|
CAP_PLUGIN_METHOD(setFlashMode, CAPPluginReturnPromise);
|
|
14
15
|
CAP_PLUGIN_METHOD(startRecordVideo, CAPPluginReturnPromise);
|
|
15
16
|
CAP_PLUGIN_METHOD(stopRecordVideo, CAPPluginReturnPromise);
|
package/ios/Plugin/Plugin.swift
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
import Foundation
|
|
2
2
|
import Capacitor
|
|
3
3
|
import AVFoundation
|
|
4
|
+
|
|
5
|
+
extension UIWindow {
|
|
6
|
+
static var isLandscape: Bool {
|
|
7
|
+
if #available(iOS 13.0, *) {
|
|
8
|
+
return UIApplication.shared.windows
|
|
9
|
+
.first?
|
|
10
|
+
.windowScene?
|
|
11
|
+
.interfaceOrientation
|
|
12
|
+
.isLandscape ?? false
|
|
13
|
+
} else {
|
|
14
|
+
return UIApplication.shared.statusBarOrientation.isLandscape
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
static var isPortrait: Bool {
|
|
18
|
+
if #available(iOS 13.0, *) {
|
|
19
|
+
return UIApplication.shared.windows
|
|
20
|
+
.first?
|
|
21
|
+
.windowScene?
|
|
22
|
+
.interfaceOrientation
|
|
23
|
+
.isPortrait ?? false
|
|
24
|
+
} else {
|
|
25
|
+
return UIApplication.shared.statusBarOrientation.isPortrait
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
4
30
|
/**
|
|
5
31
|
* Please read the Capacitor iOS Plugin Development Guide
|
|
6
32
|
* here: https://capacitor.ionicframework.com/docs/plugins/ios
|
|
@@ -24,15 +50,15 @@ public class CameraPreview: CAPPlugin {
|
|
|
24
50
|
var disableAudio: Bool = false
|
|
25
51
|
|
|
26
52
|
@objc func rotated() {
|
|
27
|
-
let height = self.paddingBottom != nil ? self.height! - self.paddingBottom!: self.height
|
|
53
|
+
let height = self.paddingBottom != nil ? self.height! - self.paddingBottom!: self.height!
|
|
28
54
|
|
|
29
|
-
if
|
|
55
|
+
if UIWindow.isLandscape {
|
|
30
56
|
self.previewView.frame = CGRect(x: self.y!, y: self.x!, width: max(height, self.width!), height: min(height, self.width!))
|
|
31
57
|
self.cameraController.previewLayer?.frame = self.previewView.frame
|
|
32
58
|
}
|
|
33
59
|
|
|
34
|
-
if
|
|
35
|
-
if
|
|
60
|
+
if UIWindow.isPortrait {
|
|
61
|
+
if self.previewView != nil && self.x != nil && self.y != nil && self.width != nil && self.height != nil {
|
|
36
62
|
self.previewView.frame = CGRect(x: self.x!, y: self.y!, width: min(height, self.width!), height: max(height, self.width!))
|
|
37
63
|
}
|
|
38
64
|
self.cameraController.previewLayer?.frame = self.previewView.frame
|
|
@@ -67,7 +93,7 @@ public class CameraPreview: CAPPlugin {
|
|
|
67
93
|
self.storeToFile = call.getBool("storeToFile") ?? false
|
|
68
94
|
self.enableZoom = call.getBool("enableZoom") ?? false
|
|
69
95
|
self.disableAudio = call.getBool("disableAudio") ?? false
|
|
70
|
-
|
|
96
|
+
|
|
71
97
|
AVCaptureDevice.requestAccess(for: .video, completionHandler: { (granted: Bool) in
|
|
72
98
|
guard granted else {
|
|
73
99
|
call.reject("permission failed")
|
|
@@ -78,7 +104,7 @@ public class CameraPreview: CAPPlugin {
|
|
|
78
104
|
if self.cameraController.captureSession?.isRunning ?? false {
|
|
79
105
|
call.reject("camera already started")
|
|
80
106
|
} else {
|
|
81
|
-
self.cameraController.prepare(cameraPosition: self.cameraPosition, disableAudio: self.disableAudio){error in
|
|
107
|
+
self.cameraController.prepare(cameraPosition: self.cameraPosition, disableAudio: self.disableAudio) {error in
|
|
82
108
|
if let error = error {
|
|
83
109
|
print(error)
|
|
84
110
|
call.reject(error.localizedDescription)
|
|
@@ -227,6 +253,15 @@ public class CameraPreview: CAPPlugin {
|
|
|
227
253
|
}
|
|
228
254
|
}
|
|
229
255
|
|
|
256
|
+
@objc func getHorizontalFov(_ call: CAPPluginCall) {
|
|
257
|
+
do {
|
|
258
|
+
let horizontalFov = try self.cameraController.getHorizontalFov()
|
|
259
|
+
call.resolve(["result": horizontalFov])
|
|
260
|
+
} catch {
|
|
261
|
+
call.reject("failed to get FOV")
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
230
265
|
@objc func setFlashMode(_ call: CAPPluginCall) {
|
|
231
266
|
guard let flashMode = call.getString("flashMode") else {
|
|
232
267
|
call.reject("failed to set flash mode. required parameter flashMode is missing")
|
|
@@ -235,7 +270,7 @@ public class CameraPreview: CAPPlugin {
|
|
|
235
270
|
do {
|
|
236
271
|
var flashModeAsEnum: AVCaptureDevice.FlashMode?
|
|
237
272
|
switch flashMode {
|
|
238
|
-
case "off"
|
|
273
|
+
case "off":
|
|
239
274
|
flashModeAsEnum = AVCaptureDevice.FlashMode.off
|
|
240
275
|
case "on":
|
|
241
276
|
flashModeAsEnum = AVCaptureDevice.FlashMode.on
|
|
@@ -414,7 +414,7 @@
|
|
|
414
414
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
415
415
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
416
416
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
417
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
417
|
+
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
|
418
418
|
MTL_ENABLE_DEBUG_INFO = YES;
|
|
419
419
|
ONLY_ACTIVE_ARCH = YES;
|
|
420
420
|
SDKROOT = iphoneos;
|
|
@@ -469,7 +469,7 @@
|
|
|
469
469
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
470
470
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
471
471
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
472
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
472
|
+
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
|
473
473
|
MTL_ENABLE_DEBUG_INFO = NO;
|
|
474
474
|
SDKROOT = iphoneos;
|
|
475
475
|
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
|
@@ -493,12 +493,15 @@
|
|
|
493
493
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
|
494
494
|
INFOPLIST_FILE = Plugin/Info.plist;
|
|
495
495
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
|
496
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
496
|
+
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
|
497
497
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(FRAMEWORK_SEARCH_PATHS)\n$(FRAMEWORK_SEARCH_PATHS)\n$(FRAMEWORK_SEARCH_PATHS)";
|
|
498
498
|
ONLY_ACTIVE_ARCH = YES;
|
|
499
499
|
PRODUCT_BUNDLE_IDENTIFIER = com.getcapacitor.Plugin;
|
|
500
500
|
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
|
501
501
|
SKIP_INSTALL = YES;
|
|
502
|
+
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
|
503
|
+
SUPPORTS_MACCATALYST = NO;
|
|
504
|
+
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
|
502
505
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
503
506
|
SWIFT_VERSION = 4.2;
|
|
504
507
|
TARGETED_DEVICE_FAMILY = "1,2";
|
|
@@ -518,12 +521,15 @@
|
|
|
518
521
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
|
519
522
|
INFOPLIST_FILE = Plugin/Info.plist;
|
|
520
523
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
|
521
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
524
|
+
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
|
522
525
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(FRAMEWORK_SEARCH_PATHS)";
|
|
523
526
|
ONLY_ACTIVE_ARCH = NO;
|
|
524
527
|
PRODUCT_BUNDLE_IDENTIFIER = com.getcapacitor.Plugin;
|
|
525
528
|
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
|
526
529
|
SKIP_INSTALL = YES;
|
|
530
|
+
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
|
531
|
+
SUPPORTS_MACCATALYST = NO;
|
|
532
|
+
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
|
527
533
|
SWIFT_VERSION = 4.2;
|
|
528
534
|
TARGETED_DEVICE_FAMILY = "1,2";
|
|
529
535
|
};
|
package/ios/Podfile
CHANGED
package/ios/Podfile.lock
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
PODS:
|
|
2
|
-
- Capacitor (
|
|
2
|
+
- Capacitor (4.4.0):
|
|
3
3
|
- CapacitorCordova
|
|
4
4
|
- CapacitorCordova (2.0.1)
|
|
5
5
|
|
|
@@ -15,9 +15,9 @@ EXTERNAL SOURCES:
|
|
|
15
15
|
:path: "../node_modules/@capacitor/ios"
|
|
16
16
|
|
|
17
17
|
SPEC CHECKSUMS:
|
|
18
|
-
Capacitor:
|
|
18
|
+
Capacitor: 868367fcfeb3ba6bfabaefc63c072e6478bd046d
|
|
19
19
|
CapacitorCordova: 9fee2eb6780331b6ff09710d6a7d1f2e4707f1b9
|
|
20
20
|
|
|
21
|
-
PODFILE CHECKSUM:
|
|
21
|
+
PODFILE CHECKSUM: e80ffb7ef3a0ac7d0d6143f3e64f287d4d027c84
|
|
22
22
|
|
|
23
|
-
COCOAPODS: 1.
|
|
23
|
+
COCOAPODS: 1.11.3
|
package/package.json
CHANGED
|
@@ -1,58 +1,52 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capgo/camera-preview",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.4",
|
|
4
4
|
"description": "Camera preview",
|
|
5
5
|
"main": "dist/esm/index.js",
|
|
6
6
|
"types": "dist/esm/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
8
|
+
"verify": "npm run verify:ios && npm run verify:android && npm run verify:web",
|
|
9
|
+
"verify:ios": "cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin && cd ..",
|
|
10
|
+
"verify:android": "cd android && ./gradlew clean build test && cd ..",
|
|
11
|
+
"verify:web": "npm run build",
|
|
12
|
+
"lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint",
|
|
13
|
+
"fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --autocorrect --format",
|
|
13
14
|
"eslint": "eslint . --ext ts",
|
|
14
15
|
"prettier": "prettier \"**/*.{css,html,ts,js,java}\"",
|
|
15
16
|
"swiftlint": "node-swiftlint",
|
|
17
|
+
"docgen": "docgen --api CameraPreviewPlugin --output-readme README.md --output-json dist/docs.json",
|
|
18
|
+
"build": "npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs",
|
|
19
|
+
"clean": "rimraf ./dist && cd android && ./gradlew clean && cd ..",
|
|
20
|
+
"watch": "tsc --watch",
|
|
16
21
|
"prepublishOnly": "npm run build",
|
|
17
|
-
"prepare": "husky install
|
|
22
|
+
"prepare": "husky install"
|
|
18
23
|
},
|
|
19
|
-
"author": "Martin Donadieu",
|
|
24
|
+
"author": "Martin Donadieu <martindonadieu@gmail.com>",
|
|
20
25
|
"license": "MIT",
|
|
21
|
-
"dependencies": {
|
|
22
|
-
"@capacitor/core": "latest"
|
|
23
|
-
},
|
|
24
26
|
"devDependencies": {
|
|
25
|
-
"@capacitor/android": "
|
|
26
|
-
"@capacitor/
|
|
27
|
+
"@capacitor/android": "^4.4.0",
|
|
28
|
+
"@capacitor/cli": "^4.4.0",
|
|
29
|
+
"@capacitor/core": "^4.4.0",
|
|
30
|
+
"@capacitor/docgen": "^0.2.0",
|
|
31
|
+
"@capacitor/ios": "^4.4.0",
|
|
27
32
|
"@ionic/eslint-config": "^0.3.0",
|
|
28
33
|
"@ionic/prettier-config": "^2.0.0",
|
|
29
34
|
"@ionic/swiftlint-config": "^1.1.2",
|
|
30
|
-
"
|
|
31
|
-
"eslint": "^
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
35
|
+
"@typescript-eslint/eslint-plugin": "^5.42.1",
|
|
36
|
+
"@typescript-eslint/parser": "^5.42.1",
|
|
37
|
+
"eslint": "^8.27.0",
|
|
38
|
+
"eslint-plugin-import": "^2.26.0",
|
|
39
|
+
"husky": "^8.0.2",
|
|
40
|
+
"prettier": "^2.7.1",
|
|
41
|
+
"prettier-plugin-java": "^1.6.2",
|
|
36
42
|
"rimraf": "^3.0.2",
|
|
43
|
+
"rollup": "^3.2.5",
|
|
37
44
|
"swiftlint": "^1.0.1",
|
|
38
|
-
"typescript": "^4.
|
|
45
|
+
"typescript": "^4.8.4"
|
|
39
46
|
},
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"pre-commit": "pretty-quick --staged"
|
|
43
|
-
}
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"@capacitor/core": "^4.0.0"
|
|
44
49
|
},
|
|
45
|
-
"files": [
|
|
46
|
-
"dist/",
|
|
47
|
-
"ios/",
|
|
48
|
-
"android/",
|
|
49
|
-
"CapgoCameraPreview.podspec"
|
|
50
|
-
],
|
|
51
|
-
"keywords": [
|
|
52
|
-
"capacitor",
|
|
53
|
-
"plugin",
|
|
54
|
-
"native"
|
|
55
|
-
],
|
|
56
50
|
"capacitor": {
|
|
57
51
|
"ios": {
|
|
58
52
|
"src": "ios"
|
|
@@ -66,6 +60,17 @@
|
|
|
66
60
|
"eslintConfig": {
|
|
67
61
|
"extends": "@ionic/eslint-config/recommended"
|
|
68
62
|
},
|
|
63
|
+
"files": [
|
|
64
|
+
"dist/",
|
|
65
|
+
"ios/",
|
|
66
|
+
"android/",
|
|
67
|
+
"CapgoCameraPreview.podspec"
|
|
68
|
+
],
|
|
69
|
+
"keywords": [
|
|
70
|
+
"capacitor",
|
|
71
|
+
"plugin",
|
|
72
|
+
"native"
|
|
73
|
+
],
|
|
69
74
|
"repository": {
|
|
70
75
|
"type": "git",
|
|
71
76
|
"url": "https://github.com/Cap-go/camera-preview.git"
|