mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
add some code
This commit is contained in:
@@ -16,7 +16,7 @@ import { formatDate } from 'src/plugin/momentG.js'
|
||||
import { ThemeService } from 'src/app/services/theme.service';
|
||||
import { Camera, CameraResultType, CameraSource, Photo } from '@capacitor/camera';
|
||||
|
||||
import { Filesystem, Directory, Encoding } from '@capacitor/filesystem';
|
||||
import { Filesystem, Directory, Encoding, FilesystemDirectory } from '@capacitor/filesystem';
|
||||
import { NgxImageCompressService } from "ngx-image-compress";
|
||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||
import { PublicationFolderService } from 'src/app/store/publication-folder.service';
|
||||
@@ -25,8 +25,7 @@ import { FileService } from 'src/app/services/functions/file.service';
|
||||
import { readAndCompressImage } from 'browser-image-resizer';
|
||||
import { FilePicker } from '@capawesome/capacitor-file-picker';
|
||||
import { CapacitorVideoPlayer } from 'capacitor-video-player';
|
||||
import { VideoRecorder, VideoRecorderCamera, VideoRecorderPreviewFrame } from '@teamhive/capacitor-video-recorder';
|
||||
import { CaptureImageOptions, MediaCapture } from '@awesome-cordova-plugins/media-capture/ngx';
|
||||
import { CaptureError, CaptureImageOptions, MediaCapture, MediaFile } from '@awesome-cordova-plugins/media-capture/ngx';
|
||||
import { Capacitor } from '@capacitor/core';
|
||||
|
||||
const config = {
|
||||
@@ -44,7 +43,7 @@ interface LocalFile {
|
||||
data: string;
|
||||
}
|
||||
|
||||
const config_video: VideoRecorderPreviewFrame = {
|
||||
/* const config_video: VideoRecorderPreviewFrame = {
|
||||
id: 'video-record',
|
||||
stackPosition: 'front', // 'front' overlays your app', 'back' places behind your app.
|
||||
width: 'fill',
|
||||
@@ -52,7 +51,7 @@ const config_video: VideoRecorderPreviewFrame = {
|
||||
x: 0,
|
||||
y: 0,
|
||||
borderRadius: 0
|
||||
};
|
||||
}; */
|
||||
@Component({
|
||||
selector: 'app-new-publication',
|
||||
templateUrl: './new-publication.page.html',
|
||||
@@ -206,10 +205,24 @@ export class NewPublicationPage implements OnInit {
|
||||
async startVideoRecording() {
|
||||
try {
|
||||
let options: CaptureImageOptions = { limit: 1 }
|
||||
const data = await this.mediaCapture.captureVideo(options)
|
||||
this.video = data[0];
|
||||
let result: any
|
||||
result = await this.mediaCapture.captureVideo(options)
|
||||
this.video = result[0];
|
||||
console.log(this.video)
|
||||
this.fileType = "video/mp4"
|
||||
if (result && result.length > 0) {
|
||||
const videoFile = result[0];
|
||||
const copiedVideoPath = await this.copyVideoToDataDirectory(videoFile);
|
||||
|
||||
if (copiedVideoPath) {
|
||||
const base64Video = await this.convertVideoToBase64(copiedVideoPath);
|
||||
console.log(base64Video);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* this.convertVideoToBase64(data[0].fullPath) */
|
||||
/* this.fileType = "video/mp4"
|
||||
await Filesystem.writeFile({
|
||||
path: data[0].name,
|
||||
data: data[0].fullPath,
|
||||
@@ -226,10 +239,10 @@ export class NewPublicationPage implements OnInit {
|
||||
console.log(base64Data);
|
||||
/* this.filecontent = true;
|
||||
this.capturedVideo = "data:video/mp4;base64," + content.data;
|
||||
this.photoOrVideo = false; */
|
||||
this.photoOrVideo = false;
|
||||
})
|
||||
.catch((err) => console.error(err));
|
||||
});
|
||||
}); */
|
||||
|
||||
} catch (error) {
|
||||
console.log('record video error: ', error)
|
||||
@@ -562,4 +575,51 @@ export class NewPublicationPage implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
_getBase64(file) {
|
||||
return new Promise((resolve, reject) => {
|
||||
var reader = new FileReader();
|
||||
reader.readAsDataURL(file);
|
||||
reader.onload = function () {
|
||||
resolve(reader.result)
|
||||
};
|
||||
reader.onerror = function (error) {
|
||||
console.log('Error: ', error);
|
||||
};
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
async copyVideoToDataDirectory(videoFile: any): Promise<string | null> {
|
||||
try {
|
||||
const { uri } = videoFile;
|
||||
const fileName = uri.substring(uri.lastIndexOf('/') + 1);
|
||||
const targetPath = Directory.Data + fileName; // Set your target directory path
|
||||
|
||||
await Filesystem.copy({
|
||||
from: uri,
|
||||
to: targetPath,
|
||||
});
|
||||
|
||||
return targetPath;
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async convertVideoToBase64(videoPath: string): Promise<string | null> {
|
||||
try {
|
||||
const file = await Filesystem.readFile({ path: videoPath, directory: FilesystemDirectory.Data });
|
||||
if (file.data) {
|
||||
return 'data:video/mp4;base64,' + file.data;
|
||||
} else {
|
||||
throw new Error('Failed to read the video file.');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user