| | |
| | 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"; |
| | } |
| | } |
| |
|