Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    2

    aggiornare file letto dal tag <audio>

    Salve ragazzi, sto riscontrando un problema con il tag audio e in particolare con il file letto. Nella mia applicazione, attraverso l'utilizzo di una API, viene creato un file audio (.mp3) e salvato in una directory sul server, e fin qui tutto bene.

    Il problema è che quando richiamo il file, la prima volta mi viene riprodotto l'audio giusto, ma successivamente, quando rimpiazzo il file precedente, cancellandolo, il tag audio mi riproduce il vecchio audio e non quello nuovo. La mia conclusione è che salva in cache il file. no esiste una maniera per far in modo che riproduca il file nuovo?? Grazie.
    P.S. Se necessario posso postare il codice.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao.
    Come dici tu, è presumibilmente un problema di cache.

    Puoi risolvere in vari modi.

    Un modo spesso usato è quello di "appendere", all'url del file in questione, un numero casuale (o un timestamp o comunque un valore che varia in qualche modo).

    Questo si può fare, ad esempio, lato client con JavaScript:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
      </head>
      <body>
        No-cache - JavaScript
        <audio id="audio" src="audio.mp3" autoplay></audio>
        <script type="text/javascript">
          var el = document.getElementById("audio")
          el.src += "?"+new Date().getTime();
          el.load();
        </script>
      </body>
    </html>
    In questo caso sarà sempre "forzato l'aggiornamento della cache" perché il riferimento di tale file cambia ogni volta che la pagina viene aperta sul browser.

    Un sistema analogo puoi ottenerlo anche sul codice lato server. Nel caso, se utilizzi un linguaggio lato server, puoi intervenire direttamente sul valore src del tag. Sarebbe comunque una soluzione più performante rispetto a JavaScript.

    Inoltre, in questo caso, potresti appendere a src un valore più "adeguato allo scopo". Ad esempio, la data di creazione del file, in modo che il file sia aggiornato in cache solo quando è stato effettivamente aggiornato sul server.

    In PHP potrebbe essere una cosa del genere:
    Codice PHP:
    <?php
    $file 
    "audio.mp3";
    $src "";
    if (
    file_exists($file)) {
      
    $src $file."?".filemtime($file);
    }
    ?>
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
      </head>
      <body>
        No-cache - PHP
        <audio id="audio" src="<?php echo $src;?>" autoplay></audio>
      </body>
    </html>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.