metag-sdk-ionic 1.2.7-native-0.131 → 1.2.7-native-0.133
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/dist/src/app/pages/id-vision/components/hybrid-video-selfie/hybrid-video-selfie.component.d.ts +0 -4
- package/dist/src/app/pages/id-vision/components/hybrid-video-selfie/hybrid-video-selfie.component.js +29 -175
- package/dist/src/app/pages/id-vision/components/hybrid-video-selfie/hybrid-video-selfie.component.js.map +1 -1
- package/dist/src/app/pages/id-vision/services/custom-video-recorder.d.ts +5 -0
- package/dist/src/app/pages/id-vision/services/custom-video-recorder.js.map +1 -1
- package/native/android/src/main/java/com/metag/sdk/CustomVideoRecorder.java +253 -14
- package/package.json +1 -1
|
@@ -37,10 +37,6 @@ export declare class HybridVideoSelfieComponent implements AfterViewInit, OnDest
|
|
|
37
37
|
processHTML5Recording(): Promise<void>;
|
|
38
38
|
startNativeCameraPreview(): Promise<void>;
|
|
39
39
|
stopNativeCameraPreview(): Promise<void>;
|
|
40
|
-
handleStartClick(event: Event): void;
|
|
41
|
-
handleScreenTap(): void;
|
|
42
|
-
startNativeVideoRecord(): Promise<void>;
|
|
43
|
-
stopNativeRecording(): Promise<void>;
|
|
44
40
|
pathToFile(videoPath: string): Promise<File>;
|
|
45
41
|
cleanup(): Promise<void>;
|
|
46
42
|
closeOverlayVideo(): Promise<void>;
|
package/dist/src/app/pages/id-vision/components/hybrid-video-selfie/hybrid-video-selfie.component.js
CHANGED
|
@@ -82,77 +82,8 @@ function HybridVideoSelfieComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
82
82
|
i0.ɵɵadvance();
|
|
83
83
|
i0.ɵɵproperty("ngIf", !ctx_r1.isRecording && ctx_r1.countdown === 0 && !ctx_r1.isProcessing);
|
|
84
84
|
} }
|
|
85
|
-
function HybridVideoSelfieComponent_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
-
i0.ɵɵelementStart(0, "div", 11)(1, "div", 12)(2, "h2");
|
|
87
|
-
i0.ɵɵtext(3);
|
|
88
|
-
i0.ɵɵelementEnd();
|
|
89
|
-
i0.ɵɵelementStart(4, "p");
|
|
90
|
-
i0.ɵɵtext(5);
|
|
91
|
-
i0.ɵɵelementEnd()()();
|
|
92
|
-
} if (rf & 2) {
|
|
93
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
94
|
-
i0.ɵɵadvance(3);
|
|
95
|
-
i0.ɵɵtextInterpolate(ctx_r1.text1);
|
|
96
|
-
i0.ɵɵadvance(2);
|
|
97
|
-
i0.ɵɵtextInterpolate(ctx_r1.text2);
|
|
98
|
-
} }
|
|
99
|
-
function HybridVideoSelfieComponent_div_1_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
100
|
-
i0.ɵɵelementStart(0, "div", 13)(1, "div", 14);
|
|
101
|
-
i0.ɵɵtext(2);
|
|
102
|
-
i0.ɵɵelementEnd()();
|
|
103
|
-
} if (rf & 2) {
|
|
104
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
105
|
-
i0.ɵɵadvance(2);
|
|
106
|
-
i0.ɵɵtextInterpolate(ctx_r1.countdown);
|
|
107
|
-
} }
|
|
108
|
-
function HybridVideoSelfieComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
-
i0.ɵɵelementStart(0, "div", 15)(1, "div", 16);
|
|
110
|
-
i0.ɵɵtext(2);
|
|
111
|
-
i0.ɵɵelementEnd();
|
|
112
|
-
i0.ɵɵelementStart(3, "div", 17);
|
|
113
|
-
i0.ɵɵtext(4, "GRABANDO");
|
|
114
|
-
i0.ɵɵelementEnd()();
|
|
115
|
-
} if (rf & 2) {
|
|
116
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
117
|
-
i0.ɵɵadvance(2);
|
|
118
|
-
i0.ɵɵtextInterpolate1("\uD83D\uDD34 ", ctx_r1.timeRemaining, "s");
|
|
119
|
-
} }
|
|
120
|
-
function HybridVideoSelfieComponent_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
121
|
-
i0.ɵɵelementStart(0, "div", 18);
|
|
122
|
-
i0.ɵɵelement(1, "ion-spinner", 19);
|
|
123
|
-
i0.ɵɵelementStart(2, "p");
|
|
124
|
-
i0.ɵɵtext(3, "Procesando video...");
|
|
125
|
-
i0.ɵɵelementEnd()();
|
|
126
|
-
} }
|
|
127
|
-
function HybridVideoSelfieComponent_div_1_button_6_Template(rf, ctx) { if (rf & 1) {
|
|
128
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
|
129
|
-
i0.ɵɵelementStart(0, "button", 20);
|
|
130
|
-
i0.ɵɵlistener("click", function HybridVideoSelfieComponent_div_1_button_6_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleStartClick($event)); });
|
|
131
|
-
i0.ɵɵelement(1, "ion-icon", 21);
|
|
132
|
-
i0.ɵɵelementStart(2, "span");
|
|
133
|
-
i0.ɵɵtext(3, "COMENZAR GRABACI\u00D3N");
|
|
134
|
-
i0.ɵɵelementEnd()();
|
|
135
|
-
} }
|
|
136
85
|
function HybridVideoSelfieComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
137
|
-
|
|
138
|
-
i0.ɵɵelementStart(0, "div", 22)(1, "div", 23);
|
|
139
|
-
i0.ɵɵtemplate(2, HybridVideoSelfieComponent_div_1_div_2_Template, 6, 2, "div", 5)(3, HybridVideoSelfieComponent_div_1_div_3_Template, 3, 1, "div", 6)(4, HybridVideoSelfieComponent_div_1_div_4_Template, 5, 1, "div", 7)(5, HybridVideoSelfieComponent_div_1_div_5_Template, 4, 0, "div", 8)(6, HybridVideoSelfieComponent_div_1_button_6_Template, 4, 0, "button", 9);
|
|
140
|
-
i0.ɵɵelementStart(7, "button", 10);
|
|
141
|
-
i0.ɵɵlistener("click", function HybridVideoSelfieComponent_div_1_Template_button_click_7_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeRequestedFunction($event)); });
|
|
142
|
-
i0.ɵɵtext(8, "\u2715");
|
|
143
|
-
i0.ɵɵelementEnd()()();
|
|
144
|
-
} if (rf & 2) {
|
|
145
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
146
|
-
i0.ɵɵadvance(2);
|
|
147
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.isRecording && ctx_r1.countdown === 0 && !ctx_r1.isProcessing);
|
|
148
|
-
i0.ɵɵadvance();
|
|
149
|
-
i0.ɵɵproperty("ngIf", ctx_r1.countdown > 0);
|
|
150
|
-
i0.ɵɵadvance();
|
|
151
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isRecording);
|
|
152
|
-
i0.ɵɵadvance();
|
|
153
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isProcessing);
|
|
154
|
-
i0.ɵɵadvance();
|
|
155
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.isRecording && ctx_r1.countdown === 0 && !ctx_r1.isProcessing);
|
|
86
|
+
i0.ɵɵelement(0, "div", 22);
|
|
156
87
|
} }
|
|
157
88
|
export class HybridVideoSelfieComponent {
|
|
158
89
|
constructor(platform, modalController, alertController, changeDetector, modalDpiServices) {
|
|
@@ -248,9 +179,7 @@ export class HybridVideoSelfieComponent {
|
|
|
248
179
|
if (this.useHTML5) {
|
|
249
180
|
this.startHTML5Recording();
|
|
250
181
|
}
|
|
251
|
-
|
|
252
|
-
this.startNativeVideoRecord();
|
|
253
|
-
}
|
|
182
|
+
// Para Android, el plugin nativo maneja la grabación internamente
|
|
254
183
|
}
|
|
255
184
|
this.changeDetector.detectChanges();
|
|
256
185
|
}, 1000);
|
|
@@ -333,7 +262,7 @@ export class HybridVideoSelfieComponent {
|
|
|
333
262
|
async startNativeCameraPreview() {
|
|
334
263
|
try {
|
|
335
264
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
336
|
-
console.log('[HybridVideoSelfie] Iniciando plugin nativo CustomVideoRecorder');
|
|
265
|
+
console.log('[HybridVideoSelfie] Iniciando plugin nativo CustomVideoRecorder con UI nativa');
|
|
337
266
|
// Solicitar permisos primero
|
|
338
267
|
console.log('[HybridVideoSelfie] Solicitando permisos...');
|
|
339
268
|
const permResult = await CustomVideoRecorder.requestPermissions();
|
|
@@ -342,10 +271,26 @@ export class HybridVideoSelfieComponent {
|
|
|
342
271
|
throw new Error('Se necesitan permisos de cámara y audio');
|
|
343
272
|
}
|
|
344
273
|
console.log('[HybridVideoSelfie] ✅ Permisos concedidos');
|
|
345
|
-
console.log('[HybridVideoSelfie] ✅
|
|
274
|
+
console.log('[HybridVideoSelfie] ✅ Iniciando preview con UI 100% nativa (sin HTML)');
|
|
275
|
+
// Listener para cuando termine la grabación
|
|
276
|
+
CustomVideoRecorder.addListener('recordingComplete', async (data) => {
|
|
277
|
+
console.log('[HybridVideoSelfie] Grabación completada:', data.videoPath);
|
|
278
|
+
this.isProcessing = true;
|
|
279
|
+
try {
|
|
280
|
+
const file = await this.pathToFile(data.videoPath);
|
|
281
|
+
this.capVideo = file;
|
|
282
|
+
this.isProcessing = false;
|
|
283
|
+
if (this.backFunction) {
|
|
284
|
+
await this.backFunction(file);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
catch (error) {
|
|
288
|
+
console.error('[HybridVideoSelfie] Error procesando video:', error);
|
|
289
|
+
this.isProcessing = false;
|
|
290
|
+
}
|
|
291
|
+
});
|
|
346
292
|
await CustomVideoRecorder.startPreview();
|
|
347
|
-
console.log('[HybridVideoSelfie] ✅ CustomVideoRecorder iniciado
|
|
348
|
-
this.changeDetector.detectChanges();
|
|
293
|
+
console.log('[HybridVideoSelfie] ✅ CustomVideoRecorder iniciado - UI completamente nativa');
|
|
349
294
|
}
|
|
350
295
|
catch (error) {
|
|
351
296
|
console.error('[HybridVideoSelfie] ❌ Error iniciando CustomVideoRecorder:', error);
|
|
@@ -361,60 +306,7 @@ export class HybridVideoSelfieComponent {
|
|
|
361
306
|
console.error('[HybridVideoSelfie] Error deteniendo CustomVideoRecorder:', error);
|
|
362
307
|
}
|
|
363
308
|
}
|
|
364
|
-
|
|
365
|
-
event.stopPropagation();
|
|
366
|
-
if (!this.isRecording && !this.isProcessing && this.countdown === 0) {
|
|
367
|
-
this.startRecording();
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
handleScreenTap() {
|
|
371
|
-
// Tap en área general (reservado para expansión futura)
|
|
372
|
-
}
|
|
373
|
-
async startNativeVideoRecord() {
|
|
374
|
-
try {
|
|
375
|
-
console.log('[HybridVideoSelfie] Iniciando grabación con CustomVideoRecorder...');
|
|
376
|
-
this.isRecording = true;
|
|
377
|
-
this.timeRemaining = 5;
|
|
378
|
-
await CustomVideoRecorder.startRecording();
|
|
379
|
-
console.log('[HybridVideoSelfie] Grabación iniciada con plugin nativo');
|
|
380
|
-
this.recordingTimer = setInterval(() => {
|
|
381
|
-
this.timeRemaining -= 1;
|
|
382
|
-
this.changeDetector.detectChanges();
|
|
383
|
-
if (this.timeRemaining <= 0) {
|
|
384
|
-
clearInterval(this.recordingTimer);
|
|
385
|
-
this.stopNativeRecording();
|
|
386
|
-
}
|
|
387
|
-
}, 1000);
|
|
388
|
-
}
|
|
389
|
-
catch (error) {
|
|
390
|
-
console.error('[HybridVideoSelfie] Error iniciando grabación:', error);
|
|
391
|
-
this.isRecording = false;
|
|
392
|
-
await this.showError('No se pudo iniciar la grabación: ' + error.message);
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
async stopNativeRecording() {
|
|
396
|
-
try {
|
|
397
|
-
console.log('[HybridVideoSelfie] Deteniendo grabación...');
|
|
398
|
-
const result = await CustomVideoRecorder.stopRecording();
|
|
399
|
-
this.isRecording = false;
|
|
400
|
-
this.isProcessing = true;
|
|
401
|
-
this.changeDetector.detectChanges();
|
|
402
|
-
console.log('[HybridVideoSelfie] Video grabado en:', result.videoPath);
|
|
403
|
-
const file = await this.pathToFile(result.videoPath);
|
|
404
|
-
console.log('[HybridVideoSelfie] File creado:', file.size, 'bytes');
|
|
405
|
-
this.capVideo = file;
|
|
406
|
-
this.isProcessing = false;
|
|
407
|
-
if (this.backFunction) {
|
|
408
|
-
await this.backFunction(file);
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
catch (error) {
|
|
412
|
-
console.error('[HybridVideoSelfie] Error deteniendo grabación:', error);
|
|
413
|
-
this.isRecording = false;
|
|
414
|
-
this.isProcessing = false;
|
|
415
|
-
await this.showError('No se pudo procesar el video: ' + error.message);
|
|
416
|
-
}
|
|
417
|
-
}
|
|
309
|
+
// Los métodos de grabación ahora son manejados internamente por el plugin nativo
|
|
418
310
|
async pathToFile(videoPath) {
|
|
419
311
|
try {
|
|
420
312
|
console.log('[HybridVideoSelfie] Convirtiendo path a File:', videoPath);
|
|
@@ -491,8 +383,8 @@ export class HybridVideoSelfieComponent {
|
|
|
491
383
|
} if (rf & 2) {
|
|
492
384
|
let _t;
|
|
493
385
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
|
|
494
|
-
} }, inputs: { text1: "text1", text2: "text2", backFunction: "backFunction" }, outputs: { closeRequested: "closeRequested" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 2, vars: 2, consts: [["videoElement", ""], ["class", "camera-fullscreen", 4, "ngIf"], ["class", "camera-fullscreen-native", 4, "ngIf"], [1, "camera-fullscreen"], ["autoplay", "", "playsinline", "", 1, "video-preview"], ["class", "instructions-overlay", 4, "ngIf"], ["class", "countdown-overlay", 4, "ngIf"], ["class", "timer-overlay", 4, "ngIf"], ["class", "processing-overlay", 4, "ngIf"], ["class", "start-record-button", 3, "click", 4, "ngIf"], [1, "close-button", 3, "click"], [1, "instructions-overlay"], [1, "instruction-box"], [1, "countdown-overlay"], [1, "countdown"], [1, "timer-overlay"], [1, "timer"], [1, "recording-indicator"], [1, "processing-overlay"], ["name", "crescent"], [1, "start-record-button", 3, "click"], ["name", "videocam"], [1, "camera-fullscreen-native"]
|
|
495
|
-
i0.ɵɵtemplate(0, HybridVideoSelfieComponent_div_0_Template, 10, 5, "div", 1)(1, HybridVideoSelfieComponent_div_1_Template,
|
|
386
|
+
} }, inputs: { text1: "text1", text2: "text2", backFunction: "backFunction" }, outputs: { closeRequested: "closeRequested" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 2, vars: 2, consts: [["videoElement", ""], ["class", "camera-fullscreen", 4, "ngIf"], ["class", "camera-fullscreen-native", 4, "ngIf"], [1, "camera-fullscreen"], ["autoplay", "", "playsinline", "", 1, "video-preview"], ["class", "instructions-overlay", 4, "ngIf"], ["class", "countdown-overlay", 4, "ngIf"], ["class", "timer-overlay", 4, "ngIf"], ["class", "processing-overlay", 4, "ngIf"], ["class", "start-record-button", 3, "click", 4, "ngIf"], [1, "close-button", 3, "click"], [1, "instructions-overlay"], [1, "instruction-box"], [1, "countdown-overlay"], [1, "countdown"], [1, "timer-overlay"], [1, "timer"], [1, "recording-indicator"], [1, "processing-overlay"], ["name", "crescent"], [1, "start-record-button", 3, "click"], ["name", "videocam"], [1, "camera-fullscreen-native"]], template: function HybridVideoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
|
|
387
|
+
i0.ɵɵtemplate(0, HybridVideoSelfieComponent_div_0_Template, 10, 5, "div", 1)(1, HybridVideoSelfieComponent_div_1_Template, 1, 0, "div", 2);
|
|
496
388
|
} if (rf & 2) {
|
|
497
389
|
i0.ɵɵproperty("ngIf", ctx.useHTML5);
|
|
498
390
|
i0.ɵɵadvance();
|
|
@@ -543,48 +435,10 @@ export class HybridVideoSelfieComponent {
|
|
|
543
435
|
<button class="close-button" (click)="closeRequestedFunction($event)">✕</button>
|
|
544
436
|
</div>
|
|
545
437
|
|
|
546
|
-
<!-- Versión Nativa para Android
|
|
438
|
+
<!-- Versión Nativa para Android - Todo renderizado nativamente en Java -->
|
|
547
439
|
<div *ngIf="!useHTML5" class="camera-fullscreen-native">
|
|
548
|
-
<!--
|
|
549
|
-
|
|
550
|
-
<!-- Overlay HTML sobre el preview nativo -->
|
|
551
|
-
<div class="native-overlay-container">
|
|
552
|
-
<!-- Instrucciones iniciales -->
|
|
553
|
-
<div *ngIf="!isRecording && countdown === 0 && !isProcessing" class="instructions-overlay">
|
|
554
|
-
<div class="instruction-box">
|
|
555
|
-
<h2>{{ text1 }}</h2>
|
|
556
|
-
<p>{{ text2 }}</p>
|
|
557
|
-
</div>
|
|
558
|
-
</div>
|
|
559
|
-
|
|
560
|
-
<!-- Countdown antes de iniciar -->
|
|
561
|
-
<div *ngIf="countdown > 0" class="countdown-overlay">
|
|
562
|
-
<div class="countdown">{{ countdown }}</div>
|
|
563
|
-
</div>
|
|
564
|
-
|
|
565
|
-
<!-- Timer durante grabación -->
|
|
566
|
-
<div *ngIf="isRecording" class="timer-overlay">
|
|
567
|
-
<div class="timer">🔴 {{ timeRemaining }}s</div>
|
|
568
|
-
<div class="recording-indicator">GRABANDO</div>
|
|
569
|
-
</div>
|
|
570
|
-
|
|
571
|
-
<!-- Mensaje de procesamiento -->
|
|
572
|
-
<div *ngIf="isProcessing" class="processing-overlay">
|
|
573
|
-
<ion-spinner name="crescent"></ion-spinner>
|
|
574
|
-
<p>Procesando video...</p>
|
|
575
|
-
</div>
|
|
576
|
-
|
|
577
|
-
<!-- Botón interactivo de comenzar grabación -->
|
|
578
|
-
<button *ngIf="!isRecording && countdown === 0 && !isProcessing"
|
|
579
|
-
class="start-record-button"
|
|
580
|
-
(click)="handleStartClick($event)">
|
|
581
|
-
<ion-icon name="videocam"></ion-icon>
|
|
582
|
-
<span>COMENZAR GRABACIÓN</span>
|
|
583
|
-
</button>
|
|
584
|
-
|
|
585
|
-
<!-- Botón cerrar siempre visible -->
|
|
586
|
-
<button class="close-button" (click)="closeRequestedFunction($event)">✕</button>
|
|
587
|
-
</div>
|
|
440
|
+
<!-- La UI completa (preview, botones, overlays) se renderiza nativamente desde el plugin Java -->
|
|
441
|
+
<!-- No se necesita HTML aquí, el plugin CustomVideoRecorder maneja todo -->
|
|
588
442
|
</div>
|
|
589
443
|
`, encapsulation: ViewEncapsulation.Emulated, styles: [":host { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 2147483646 !important; background: transparent !important; pointer-events: auto !important; }", ".camera-fullscreen { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; pointer-events: auto !important; z-index: 2147483646 !important; }", ".camera-fullscreen-native { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; pointer-events: none !important; z-index: 2147483646 !important; }", ".native-overlay-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; pointer-events: auto !important; z-index: 2147483647 !important; }", ".video-preview { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transform: scaleX(-1); }", ".instructions-overlay, .countdown-overlay, .timer-overlay, .processing-overlay { background: transparent !important; box-shadow: none !important; }", ".modal-wrapper, .modal-shadow, ion-content, ion-page, .inner-scroll, .background-content { background: transparent !important; --background: transparent !important; --ion-background-color: transparent !important; box-shadow: none !important; }", ".instructions-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; display: flex; justify-content: center; align-items: center; z-index: 2147483646 !important; pointer-events: none; }", ".instruction-box { background: rgba(156, 39, 176, 0.95); padding: 30px; border-radius: 20px; text-align: center; max-width: 80%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }", ".instruction-box h2 { color: white; font-size: 28px; font-weight: bold; margin: 0 0 15px 0; }", ".instruction-box p { color: white; font-size: 16px; margin: 10px 0; line-height: 1.5; }", ".preview-notice { display: flex; align-items: center; justify-content: center; gap: 10px; background: rgba(255, 255, 255, 0.2); padding: 12px 20px; border-radius: 12px; margin-top: 20px; }", ".preview-notice ion-icon { font-size: 24px; color: white; }", ".preview-notice span { color: white; font-size: 14px; font-weight: 500; }", ".countdown-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; display: flex; justify-content: center; align-items: center; z-index: 2147483646 !important; pointer-events: none; }", ".countdown { font-size: 120px; color: white; font-weight: bold; animation: pulse 1s ease-in-out; }", "@keyframes pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.8; transform: scale(0.95); } }", ".timer-overlay { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); z-index: 2147483646 !important; pointer-events: none; text-align: center; background: transparent !important; }", ".timer { background: rgba(244, 67, 54, 0.95); color: white; font-size: 32px; font-weight: bold; padding: 10px 20px; border-radius: 20px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); margin-bottom: 10px; }", ".recording-indicator { background: rgba(0, 0, 0, 0.7); color: white; font-size: 14px; font-weight: bold; padding: 5px 15px; border-radius: 10px; }", ".processing-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 2147483646 !important; pointer-events: none; }", ".processing-overlay ion-spinner { --color: white; width: 60px; height: 60px; margin-bottom: 20px; }", ".processing-overlay p { color: white; font-size: 18px; font-weight: bold; }", ".close-button { position: fixed; top: 20px; right: 20px; width: 50px; height: 50px; border-radius: 50%; background: rgba(0, 0, 0, 0.6); color: white; border: 2px solid white; font-size: 24px; font-weight: bold; cursor: pointer; z-index: 2147483646 !important; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 8px rgba(0,0,0,0.3); pointer-events: auto !important; }", ".start-record-button { position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); background: linear-gradient(135deg, #9c27b0, #e91e63); color: white; border: none; border-radius: 50px; padding: 20px 40px; font-size: 20px; font-weight: bold; display: flex; align-items: center; gap: 12px; box-shadow: 0 8px 20px rgba(156, 39, 176, 0.6); z-index: 2147483646 !important; pointer-events: auto !important; cursor: pointer; transition: all 0.3s ease; animation: pulseBtn 1.5s infinite; }", ".start-record-button:active { transform: translateX(-50%) scale(0.95); box-shadow: 0 4px 12px rgba(156, 39, 176, 0.8); }", ".start-record-button ion-icon { font-size: 26px; }", "@keyframes pulseBtn { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.08); } }"] }]
|
|
590
444
|
}], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i1.AlertController }, { type: i0.ChangeDetectorRef }, { type: i2.ModalDpiServices }], { text1: [{
|
|
@@ -599,5 +453,5 @@ export class HybridVideoSelfieComponent {
|
|
|
599
453
|
type: ViewChild,
|
|
600
454
|
args: ['videoElement']
|
|
601
455
|
}] }); })();
|
|
602
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HybridVideoSelfieComponent, { className: "HybridVideoSelfieComponent", filePath: "src\\app\\pages\\id-vision\\components\\hybrid-video-selfie\\hybrid-video-selfie.component.ts", lineNumber:
|
|
456
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HybridVideoSelfieComponent, { className: "HybridVideoSelfieComponent", filePath: "src\\app\\pages\\id-vision\\components\\hybrid-video-selfie\\hybrid-video-selfie.component.ts", lineNumber: 98 }); })();
|
|
603
457
|
//# sourceMappingURL=hybrid-video-selfie.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid-video-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/hybrid-video-selfie/hybrid-video-selfie.component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hybrid-video-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/hybrid-video-selfie/hybrid-video-selfie.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PluginListenerHandle } from '@capacitor/core';
|
|
1
2
|
export interface CustomVideoRecorderPlugin {
|
|
2
3
|
requestPermissions(): Promise<{
|
|
3
4
|
camera: boolean;
|
|
@@ -16,6 +17,10 @@ export interface CustomVideoRecorderPlugin {
|
|
|
16
17
|
success: boolean;
|
|
17
18
|
videoPath: string;
|
|
18
19
|
}>;
|
|
20
|
+
addListener(eventName: 'recordingComplete', listenerFunc: (data: {
|
|
21
|
+
success: boolean;
|
|
22
|
+
videoPath: string;
|
|
23
|
+
}) => void): Promise<PluginListenerHandle> & PluginListenerHandle;
|
|
19
24
|
}
|
|
20
25
|
declare const CustomVideoRecorder: CustomVideoRecorderPlugin;
|
|
21
26
|
export default CustomVideoRecorder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-video-recorder.js","sourceRoot":"","sources":["../../../../../../src/app/pages/id-vision/services/custom-video-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"custom-video-recorder.js","sourceRoot":"","sources":["../../../../../../src/app/pages/id-vision/services/custom-video-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAwB,MAAM,iBAAiB,CAAC;AAcvE,MAAM,mBAAmB,GAAG,cAAc,CAA4B,qBAAqB,CAAC,CAAC;AAE7F,eAAe,mBAAmB,CAAC"}
|
|
@@ -2,15 +2,14 @@ package com.metag.sdk;
|
|
|
2
2
|
|
|
3
3
|
import android.Manifest;
|
|
4
4
|
import android.content.pm.PackageManager;
|
|
5
|
-
import android.graphics
|
|
5
|
+
import android.graphics.*;
|
|
6
6
|
import android.hardware.camera2.*;
|
|
7
7
|
import android.media.MediaRecorder;
|
|
8
8
|
import android.os.Handler;
|
|
9
9
|
import android.os.HandlerThread;
|
|
10
10
|
import android.util.Size;
|
|
11
|
-
import android.
|
|
12
|
-
import android.view
|
|
13
|
-
import android.view.ViewGroup;
|
|
11
|
+
import android.util.TypedValue;
|
|
12
|
+
import android.view.*;
|
|
14
13
|
import android.widget.FrameLayout;
|
|
15
14
|
import androidx.annotation.NonNull;
|
|
16
15
|
import androidx.core.app.ActivityCompat;
|
|
@@ -38,12 +37,14 @@ public class CustomVideoRecorder extends Plugin {
|
|
|
38
37
|
private CameraCaptureSession cameraCaptureSession;
|
|
39
38
|
private CaptureRequest.Builder captureRequestBuilder;
|
|
40
39
|
private MediaRecorder mediaRecorder;
|
|
41
|
-
private
|
|
40
|
+
private CameraOverlayView overlayView;
|
|
42
41
|
private HandlerThread backgroundThread;
|
|
43
42
|
private Handler backgroundHandler;
|
|
44
43
|
private Size videoSize;
|
|
45
44
|
private String videoFilePath;
|
|
46
45
|
private boolean isRecording = false;
|
|
46
|
+
private int countdown = 0;
|
|
47
|
+
private int timeRemaining = 5;
|
|
47
48
|
|
|
48
49
|
@PluginMethod
|
|
49
50
|
public void requestPermissions(PluginCall call) {
|
|
@@ -70,18 +71,19 @@ public class CustomVideoRecorder extends Plugin {
|
|
|
70
71
|
|
|
71
72
|
getActivity().runOnUiThread(() -> {
|
|
72
73
|
try {
|
|
73
|
-
textureView = new TextureView(getContext());
|
|
74
|
-
textureView.setSurfaceTextureListener(surfaceTextureListener);
|
|
75
|
-
|
|
76
74
|
ViewGroup webViewParent = (ViewGroup) getBridge().getWebView().getParent();
|
|
77
75
|
|
|
76
|
+
// Crear vista de overlay nativo con preview y UI
|
|
77
|
+
overlayView = new CameraOverlayView(getContext(), this);
|
|
78
|
+
|
|
78
79
|
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
|
|
79
80
|
FrameLayout.LayoutParams.MATCH_PARENT,
|
|
80
81
|
FrameLayout.LayoutParams.MATCH_PARENT
|
|
81
82
|
);
|
|
82
|
-
webViewParent.addView(
|
|
83
|
+
webViewParent.addView(overlayView, params);
|
|
83
84
|
|
|
84
85
|
getBridge().getWebView().setBackgroundColor(0x00000000);
|
|
86
|
+
getBridge().getWebView().setVisibility(View.GONE);
|
|
85
87
|
|
|
86
88
|
JSObject ret = new JSObject();
|
|
87
89
|
ret.put("success", true);
|
|
@@ -96,15 +98,16 @@ public class CustomVideoRecorder extends Plugin {
|
|
|
96
98
|
public void stopPreview(PluginCall call) {
|
|
97
99
|
getActivity().runOnUiThread(() -> {
|
|
98
100
|
closeCamera();
|
|
99
|
-
if (
|
|
100
|
-
ViewGroup parent = (ViewGroup)
|
|
101
|
+
if (overlayView != null) {
|
|
102
|
+
ViewGroup parent = (ViewGroup) overlayView.getParent();
|
|
101
103
|
if (parent != null) {
|
|
102
|
-
parent.removeView(
|
|
104
|
+
parent.removeView(overlayView);
|
|
103
105
|
}
|
|
104
|
-
|
|
106
|
+
overlayView = null;
|
|
105
107
|
}
|
|
106
108
|
|
|
107
109
|
getBridge().getWebView().setBackgroundColor(0xFFFFFFFF);
|
|
110
|
+
getBridge().getWebView().setVisibility(View.VISIBLE);
|
|
108
111
|
|
|
109
112
|
JSObject ret = new JSObject();
|
|
110
113
|
ret.put("success", true);
|
|
@@ -260,7 +263,11 @@ public class CustomVideoRecorder extends Plugin {
|
|
|
260
263
|
|
|
261
264
|
private void startPreviewSession() {
|
|
262
265
|
try {
|
|
263
|
-
|
|
266
|
+
if (overlayView == null || overlayView.textureView == null) return;
|
|
267
|
+
|
|
268
|
+
SurfaceTexture texture = overlayView.textureView.getSurfaceTexture();
|
|
269
|
+
if (texture == null) return;
|
|
270
|
+
|
|
264
271
|
texture.setDefaultBufferSize(videoSize.getWidth(), videoSize.getHeight());
|
|
265
272
|
Surface surface = new Surface(texture);
|
|
266
273
|
|
|
@@ -371,4 +378,236 @@ public class CustomVideoRecorder extends Plugin {
|
|
|
371
378
|
== PackageManager.PERMISSION_GRANTED);
|
|
372
379
|
call.resolve(ret);
|
|
373
380
|
}
|
|
381
|
+
|
|
382
|
+
// Vista personalizada que combina TextureView (preview) + Canvas (UI)
|
|
383
|
+
private class CameraOverlayView extends FrameLayout {
|
|
384
|
+
private TextureView textureView;
|
|
385
|
+
private Paint paint;
|
|
386
|
+
private Paint textPaint;
|
|
387
|
+
private Paint buttonPaint;
|
|
388
|
+
private RectF recordButton;
|
|
389
|
+
private RectF closeButton;
|
|
390
|
+
private CustomVideoRecorder plugin;
|
|
391
|
+
|
|
392
|
+
public CameraOverlayView(android.content.Context context, CustomVideoRecorder plugin) {
|
|
393
|
+
super(context);
|
|
394
|
+
this.plugin = plugin;
|
|
395
|
+
|
|
396
|
+
// TextureView para preview de cámara
|
|
397
|
+
textureView = new TextureView(context);
|
|
398
|
+
textureView.setSurfaceTextureListener(surfaceTextureListener);
|
|
399
|
+
addView(textureView, new FrameLayout.LayoutParams(
|
|
400
|
+
FrameLayout.LayoutParams.MATCH_PARENT,
|
|
401
|
+
FrameLayout.LayoutParams.MATCH_PARENT
|
|
402
|
+
));
|
|
403
|
+
|
|
404
|
+
// Configurar paints
|
|
405
|
+
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
|
406
|
+
|
|
407
|
+
textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
|
408
|
+
textPaint.setColor(Color.WHITE);
|
|
409
|
+
textPaint.setTextSize(dpToPx(20));
|
|
410
|
+
textPaint.setTextAlign(Paint.Align.CENTER);
|
|
411
|
+
textPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
|
|
412
|
+
|
|
413
|
+
buttonPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
|
414
|
+
buttonPaint.setColor(Color.parseColor("#9C27B0"));
|
|
415
|
+
|
|
416
|
+
// Áreas de botones
|
|
417
|
+
recordButton = new RectF();
|
|
418
|
+
closeButton = new RectF();
|
|
419
|
+
|
|
420
|
+
setWillNotDraw(false);
|
|
421
|
+
setClickable(true);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
@Override
|
|
425
|
+
protected void onDraw(Canvas canvas) {
|
|
426
|
+
super.onDraw(canvas);
|
|
427
|
+
|
|
428
|
+
int width = getWidth();
|
|
429
|
+
int height = getHeight();
|
|
430
|
+
|
|
431
|
+
if (countdown > 0) {
|
|
432
|
+
// Dibujar countdown
|
|
433
|
+
paint.setColor(Color.parseColor("#99000000"));
|
|
434
|
+
canvas.drawRect(0, 0, width, height, paint);
|
|
435
|
+
|
|
436
|
+
textPaint.setTextSize(dpToPx(80));
|
|
437
|
+
canvas.drawText(String.valueOf(countdown), width / 2, height / 2, textPaint);
|
|
438
|
+
textPaint.setTextSize(dpToPx(20));
|
|
439
|
+
} else if (isRecording) {
|
|
440
|
+
// Dibujar timer de grabación
|
|
441
|
+
paint.setColor(Color.parseColor("#CCF44336"));
|
|
442
|
+
canvas.drawRoundRect(width / 2 - dpToPx(100), dpToPx(20),
|
|
443
|
+
width / 2 + dpToPx(100), dpToPx(80), dpToPx(20), dpToPx(20), paint);
|
|
444
|
+
|
|
445
|
+
canvas.drawText("🔴 " + timeRemaining + "s", width / 2, dpToPx(55), textPaint);
|
|
446
|
+
} else {
|
|
447
|
+
// Dibujar botón de grabar
|
|
448
|
+
int buttonWidth = dpToPx(200);
|
|
449
|
+
int buttonHeight = dpToPx(60);
|
|
450
|
+
int buttonX = (width - buttonWidth) / 2;
|
|
451
|
+
int buttonY = height - dpToPx(150);
|
|
452
|
+
|
|
453
|
+
recordButton.set(buttonX, buttonY, buttonX + buttonWidth, buttonY + buttonHeight);
|
|
454
|
+
|
|
455
|
+
buttonPaint.setColor(Color.parseColor("#9C27B0"));
|
|
456
|
+
canvas.drawRoundRect(recordButton, dpToPx(30), dpToPx(30), buttonPaint);
|
|
457
|
+
|
|
458
|
+
textPaint.setTextSize(dpToPx(18));
|
|
459
|
+
canvas.drawText("⬤ GRABAR", width / 2, buttonY + dpToPx(38), textPaint);
|
|
460
|
+
textPaint.setTextSize(dpToPx(20));
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
// Botón cerrar siempre visible
|
|
464
|
+
int closeSize = dpToPx(50);
|
|
465
|
+
closeButton.set(width - dpToPx(70), dpToPx(20),
|
|
466
|
+
width - dpToPx(20), dpToPx(70));
|
|
467
|
+
|
|
468
|
+
paint.setColor(Color.parseColor("#AA000000"));
|
|
469
|
+
canvas.drawCircle(closeButton.centerX(), closeButton.centerY(), closeSize / 2, paint);
|
|
470
|
+
|
|
471
|
+
paint.setColor(Color.WHITE);
|
|
472
|
+
paint.setStrokeWidth(dpToPx(3));
|
|
473
|
+
paint.setStyle(Paint.Style.STROKE);
|
|
474
|
+
canvas.drawLine(closeButton.centerX() - dpToPx(12), closeButton.centerY() - dpToPx(12),
|
|
475
|
+
closeButton.centerX() + dpToPx(12), closeButton.centerY() + dpToPx(12), paint);
|
|
476
|
+
canvas.drawLine(closeButton.centerX() + dpToPx(12), closeButton.centerY() - dpToPx(12),
|
|
477
|
+
closeButton.centerX() - dpToPx(12), closeButton.centerY() + dpToPx(12), paint);
|
|
478
|
+
paint.setStyle(Paint.Style.FILL);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
@Override
|
|
482
|
+
public boolean onTouchEvent(MotionEvent event) {
|
|
483
|
+
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
|
484
|
+
float x = event.getX();
|
|
485
|
+
float y = event.getY();
|
|
486
|
+
|
|
487
|
+
// Check botón cerrar
|
|
488
|
+
if (closeButton.contains(x, y)) {
|
|
489
|
+
stopPreview(null);
|
|
490
|
+
return true;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
// Check botón grabar
|
|
494
|
+
if (!isRecording && countdown == 0 && recordButton.contains(x, y)) {
|
|
495
|
+
startCountdown();
|
|
496
|
+
return true;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
return super.onTouchEvent(event);
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
private int dpToPx(float dp) {
|
|
503
|
+
return (int) TypedValue.applyDimension(
|
|
504
|
+
TypedValue.COMPLEX_UNIT_DIP, dp,
|
|
505
|
+
getContext().getResources().getDisplayMetrics()
|
|
506
|
+
);
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
public void updateUI() {
|
|
510
|
+
invalidate();
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
private void startCountdown() {
|
|
515
|
+
countdown = 3;
|
|
516
|
+
overlayView.updateUI();
|
|
517
|
+
|
|
518
|
+
Handler handler = new Handler();
|
|
519
|
+
Runnable countdownRunnable = new Runnable() {
|
|
520
|
+
@Override
|
|
521
|
+
public void run() {
|
|
522
|
+
countdown--;
|
|
523
|
+
overlayView.updateUI();
|
|
524
|
+
|
|
525
|
+
if (countdown > 0) {
|
|
526
|
+
handler.postDelayed(this, 1000);
|
|
527
|
+
} else {
|
|
528
|
+
startRecordingInternal();
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
};
|
|
532
|
+
handler.postDelayed(countdownRunnable, 1000);
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
private void startRecordingInternal() {
|
|
536
|
+
try {
|
|
537
|
+
setUpMediaRecorder();
|
|
538
|
+
|
|
539
|
+
Surface recorderSurface = mediaRecorder.getSurface();
|
|
540
|
+
captureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
|
|
541
|
+
captureRequestBuilder.addTarget(recorderSurface);
|
|
542
|
+
captureRequestBuilder.addTarget(new Surface(overlayView.textureView.getSurfaceTexture()));
|
|
543
|
+
|
|
544
|
+
cameraDevice.createCaptureSession(
|
|
545
|
+
Arrays.asList(recorderSurface, new Surface(overlayView.textureView.getSurfaceTexture())),
|
|
546
|
+
new CameraCaptureSession.StateCallback() {
|
|
547
|
+
@Override
|
|
548
|
+
public void onConfigured(@NonNull CameraCaptureSession session) {
|
|
549
|
+
cameraCaptureSession = session;
|
|
550
|
+
try {
|
|
551
|
+
session.setRepeatingRequest(
|
|
552
|
+
captureRequestBuilder.build(),
|
|
553
|
+
null,
|
|
554
|
+
backgroundHandler
|
|
555
|
+
);
|
|
556
|
+
mediaRecorder.start();
|
|
557
|
+
isRecording = true;
|
|
558
|
+
timeRemaining = 5;
|
|
559
|
+
overlayView.updateUI();
|
|
560
|
+
|
|
561
|
+
startRecordingTimer();
|
|
562
|
+
} catch (Exception e) {
|
|
563
|
+
e.printStackTrace();
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
@Override
|
|
568
|
+
public void onConfigureFailed(@NonNull CameraCaptureSession session) {}
|
|
569
|
+
},
|
|
570
|
+
backgroundHandler
|
|
571
|
+
);
|
|
572
|
+
} catch (Exception e) {
|
|
573
|
+
e.printStackTrace();
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
private void startRecordingTimer() {
|
|
578
|
+
Handler handler = new Handler();
|
|
579
|
+
Runnable timerRunnable = new Runnable() {
|
|
580
|
+
@Override
|
|
581
|
+
public void run() {
|
|
582
|
+
timeRemaining--;
|
|
583
|
+
overlayView.updateUI();
|
|
584
|
+
|
|
585
|
+
if (timeRemaining > 0) {
|
|
586
|
+
handler.postDelayed(this, 1000);
|
|
587
|
+
} else {
|
|
588
|
+
stopRecordingInternal();
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
};
|
|
592
|
+
handler.postDelayed(timerRunnable, 1000);
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
private void stopRecordingInternal() {
|
|
596
|
+
try {
|
|
597
|
+
mediaRecorder.stop();
|
|
598
|
+
mediaRecorder.reset();
|
|
599
|
+
isRecording = false;
|
|
600
|
+
overlayView.updateUI();
|
|
601
|
+
|
|
602
|
+
// Notificar al JavaScript
|
|
603
|
+
JSObject ret = new JSObject();
|
|
604
|
+
ret.put("success", true);
|
|
605
|
+
ret.put("videoPath", videoFilePath);
|
|
606
|
+
notifyListeners("recordingComplete", ret);
|
|
607
|
+
|
|
608
|
+
startPreviewSession();
|
|
609
|
+
} catch (Exception e) {
|
|
610
|
+
e.printStackTrace();
|
|
611
|
+
}
|
|
612
|
+
}
|
|
374
613
|
}
|
package/package.json
CHANGED