Fix: Mejorar manejo de duracion de audio y errores de envio
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m10s

- Validar que duration sea numero finito en MessageAudio
- Obtener duracion del elemento audio si no esta en metadata
- Agregar toast de error para envio de notas de voz
This commit is contained in:
2025-12-04 10:22:49 -06:00
parent 9667738604
commit 9f90b8cd2b
2 changed files with 27 additions and 4 deletions

View File

@@ -104,7 +104,12 @@ const isPlaying = ref(false)
const loading = ref(true)
const error = ref(false)
const currentTime = ref(0)
const duration = ref(props.media.duration || 0)
// Ensure duration is a valid number
const duration = ref(
typeof props.media.duration === 'number' && isFinite(props.media.duration) && props.media.duration > 0
? props.media.duration
: 0
)
const audioUrl = computed(() => {
if (props.media.url) return props.media.url
@@ -155,8 +160,12 @@ const seekTo = (e: MouseEvent) => {
const onLoadedMetadata = () => {
loading.value = false
if (audioRef.value && !props.media.duration) {
duration.value = audioRef.value.duration
// Always try to get duration from audio element if we don't have a valid one
if (audioRef.value) {
const audioDuration = audioRef.value.duration
if (isFinite(audioDuration) && audioDuration > 0 && duration.value === 0) {
duration.value = audioDuration
}
}
}