@independo/capacitor-voice-recorder
Version:
Capacitor plugin for voice recording
32 lines • 1.26 kB
JavaScript
/**
* @param {Blob | string} blob
* @returns {Promise<number>} Blob duration in seconds.
*/
export default function getBlobDuration(blob) {
const tempVideoEl = document.createElement('video');
if (!tempVideoEl)
throw new Error('Failed to create video element');
const durationP = new Promise((resolve, reject) => {
tempVideoEl.addEventListener('loadedmetadata', () => {
// Chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=642012
if (tempVideoEl.duration === Infinity) {
tempVideoEl.currentTime = Number.MAX_SAFE_INTEGER;
tempVideoEl.ontimeupdate = () => {
tempVideoEl.ontimeupdate = null;
resolve(tempVideoEl.duration);
tempVideoEl.currentTime = 0;
};
}
else {
resolve(tempVideoEl.duration);
}
});
tempVideoEl.onerror = (event) => {
const error = event.error || new Error('Unknown error occurred');
reject(error);
};
});
tempVideoEl.src = typeof blob === 'string' ? blob : URL.createObjectURL(blob);
return durationP;
}
//# sourceMappingURL=get-blob-duration.js.map