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>