Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

215
Visualizações
¿Hay alguna manera de obligar al navegador a extraer una URL del caché si está disponible? Alternativamente, ¿hay alguna forma de "reciclar" la URL de src para HTMLAudio?

Entonces... estoy desarrollando una aplicación web... básicamente necesito pedirle a mi backend un mp3 a través de una solicitud de obtención (no se puede almacenar en caché ya que se actualiza con frecuencia, de hecho, este código es parte de un componente de carga para cambiar eso) y luego necesito repetirlo indefinidamente.

Si intenta hacer un bucle con el elemento de audio HTML, no se repite sin problemas... así que encontré un código que básicamente crea dos componentes de audio HTML y se encarga de reproducirlo sin problemas al reproducirlos simultáneamente y hacer malabarismos entre el volumen de los dos. ..

Funciona perfectamente, PERO, quiero optimizar esto... Actualmente le estoy pidiendo al backend el mismo archivo tres veces... una vez para un componente de audio de búfer (solo necesito la duración de esto, ya que no puede se guardará en el backend actualmente) y dos veces para cada HTMLAudio dentro del código SeamlessLoop que encontré.

Este problema incluso se ve acentuado por el hecho de que tengo 5 de esos bucles que necesito cargar cada vez.

 //I removed part of the code to make it more digestable loadAudio() { for (let i = 1; i <= 5; i++) { let url = this.audio.tracks[i] let audio = new Audio() audio.src = url audio.load audio.addEventListener('loadedmetadata', () => { this.loops[`lvl${i}`] = new SeamlessLoop() //SeamlessLoop.addUri is basically how you inizialize this class //inside it creates two Audio elements and everything else it needs //addUri(src: string, duration: number, name: string) this.loops[`lvl${i}`].addUri(url, audio.duration*1000, 'loop') }) } }

Ahora, ya tengo un montón de soluciones ...

  • Podría almacenar la duración del archivo cada vez que se cambia en la base de datos, por lo que solo podría descargar el archivo una vez (configurando el caché en 5 segundos o algo así en el backend)
  • Alternativamente, podría almacenar en caché los archivos desde el backend a un horario regular y simplemente cambiar el nombre del archivo cada vez que se carga uno nuevo.

Preferiría evitar ambas soluciones, ya que ambas requerirían una reestructuración del backend que podría no valer la pena...

Por lo tanto, aquí está mi pregunta:

¿Hay alguna manera de forzar que el navegador cargue una URL desde la memoria caché? Algo así como agregar un # después de una URL para forzarlo a descargarlo de nuevo en lugar de extraerlo de la memoria caché, pero al contrario... Si eso es una cosa, resolvería mi problema al instante.

Segunda pregunta, en caso de que la respuesta a la primera sea no:

¿Hay alguna forma de inicializar un nuevo Audio() usando como src otro Audio que ya haya descargado el archivo?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

como lo sugiere @Terry,

No creo que haya una manera de hacer eso como sugerí.

Sin embargo, investigué la API de audio web y funcionó de maravilla (incluido un bucle continuo listo para usar)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda