diff --git a/ts/components/conversation/MessageAudio.tsx b/ts/components/conversation/MessageAudio.tsx index 95378d4f67..8b67937906 100644 --- a/ts/components/conversation/MessageAudio.tsx +++ b/ts/components/conversation/MessageAudio.tsx @@ -268,14 +268,24 @@ export const MessageAudio: React.FC = (props: Props) => { audio.currentTime = currentTime; }; + const onDurationChange = () => { + window.log.info('MessageAudio: `durationchange` event', id); + + if (!Number.isNaN(audio.duration)) { + setDuration(Math.max(audio.duration, 1e-23)); + } + }; + audio.addEventListener('timeupdate', onTimeUpdate); audio.addEventListener('ended', onEnded); audio.addEventListener('loadedmetadata', onLoadedMetadata); + audio.addEventListener('durationchange', onDurationChange); return () => { audio.removeEventListener('timeupdate', onTimeUpdate); audio.removeEventListener('ended', onEnded); audio.removeEventListener('loadedmetadata', onLoadedMetadata); + audio.removeEventListener('durationchange', onDurationChange); }; }, [id, audio, isActive, currentTime]);