Skip to content

Commit d4eafde

Browse files
author
farfromrefuge
committed
feat(android): stretch property
1 parent 079432c commit d4eafde

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

packages/ui-cameraview/platforms/ios/src/NSCameraView.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,16 @@ public class NSCameraView: UIView, NextLevelVideoDelegate, NextLevelPhotoDelegat
5050
self.nextLevel?.previewLayer.frame = self.bounds
5151
}
5252
}
53+
54+
55+
public var videoGravity: AVLayerVideoGravity {
56+
get {
57+
return self.nextLevel?.previewLayer.videoGravity
58+
}
59+
set {
60+
self.nextLevel?.previewLayer.videoGravity = newValue
61+
}
62+
}
5363

5464
public var flashMode: Int {
5565
get {

src/ui-cameraview/index.ios.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,26 @@
11
import { TakePictureOptions } from '.';
2-
import { CameraViewBase, autoFocusProperty, flashModeProperty } from './index.common';
2+
import { CameraViewBase, ScaleType, autoFocusProperty, flashModeProperty, stretchProperty } from './index.common';
33
import { File, Utils } from '@nativescript/core';
44

5+
function getScaleType(scaleType: ScaleType) {
6+
if (typeof scaleType === 'string') {
7+
switch (scaleType) {
8+
case ScaleType.FitCenter:
9+
case ScaleType.AspectFit:
10+
case ScaleType.FitEnd:
11+
case ScaleType.FitStart:
12+
return AVLayerVideoGravityResizeAspect;
13+
default:
14+
case ScaleType.Center:
15+
case ScaleType.Fill:
16+
case ScaleType.AspectFill:
17+
return AVLayerVideoGravityResizeAspectFill;
18+
}
19+
}
20+
21+
return AVLayerVideoGravityResizeAspectFill;
22+
}
23+
524
@NativeClass
625
class ProcessRawVideoSampleBufferDelegateImpl extends NSObject implements ProcessRawVideoSampleBufferDelegate {
726
cameraViewRenderToCustomContextWithImageBufferOnQueue(cameraView: NSCameraView, imageBuffer: any, queue: NSObject): void {}
@@ -231,4 +250,8 @@ export class CameraView extends CameraViewBase {
231250
this.nativeViewProtected.focusMode = value;
232251
}
233252
}
253+
254+
[stretchProperty.setNative](value) {
255+
this.nativeViewProtected.videoGravity = (getScaleType(value));
256+
}
234257
}

src/ui-cameraview/typings/ios.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ declare class NSCameraView extends UIView {
3232
torchMode: number;
3333

3434
videoDelegate: NSCameraViewVideoDelegate;
35+
videoGravity: string;
3536

3637
capturePhoto(): void;
3738

0 commit comments

Comments
 (0)