|
|
|
async () => {
|
|
|
|
if (!window.startRecording) {
|
|
let recorder_js = null;
|
|
let main_js = null;
|
|
}
|
|
|
|
|
|
async function getVideoBlobAsBase64(objectURL) {
|
|
const response = await fetch(objectURL);
|
|
if (!response.ok) {
|
|
throw new Error('Failed to fetch video blob.');
|
|
}
|
|
|
|
const blob = await response.blob();
|
|
|
|
const reader = new FileReader();
|
|
reader.readAsDataURL(blob);
|
|
|
|
return new Promise((resolve, reject) => {
|
|
reader.onloadend = () => {
|
|
if (reader.result) {
|
|
resolve(reader.result.split(',')[1]);
|
|
} else {
|
|
reject('Failed to convert blob to base64.');
|
|
}
|
|
};
|
|
});
|
|
}
|
|
|
|
if (window.currentState === "RECORDING") {
|
|
await window.stopRecording();
|
|
const base64String = await getVideoBlobAsBase64(window.videoSource);
|
|
return base64String;
|
|
} else {
|
|
window.startRecording();
|
|
return "Record";
|
|
}
|
|
}
|
|
|