UNPKG

@independo/capacitor-voice-recorder

Version:
32 lines 1.26 kB
/** * @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