HTML5音频重读

HTML5音频重读,html,audio-streaming,Html,Audio Streaming,如果内容已更改但名称仍然相同,如何在HTML5中重新读取音频文件(.WAV)?我实施了以下措施: <html> <head> <script type="text/javascript" language="javascript"> function Speak() { document.getElementById("Speech").load(); document.getElementById("Speech").play(); } &l

如果内容已更改但名称仍然相同,如何在HTML5中重新读取音频文件(.WAV)?我实施了以下措施:

<html>
<head>
<script type="text/javascript" language="javascript">
function Speak() {
    document.getElementById("Speech").load();
    document.getElementById("Speech").play();
}
</script>
</head>

<body>
<audio id="Speech" src="speech.wav"></audio>
<button type="button" onclick="Speak()">Speak</button>
</body>
</html>

函数Speak(){
document.getElementById(“Speech”).load();
document.getElementById(“Speech”).play();
}
通话

如果我更改了
speech.wav
的内容,浏览器仍会在单击按钮时播放以前的内容。有没有办法重新读取音频文件?

最简单的方法是在URL中附加某种版本密钥,例如随机ID

<audio id="speech" src="speech.wav?ver=8976234asdfasdf">


不过,可能还有另一种方法。

刚刚找到了答案,这证实了我的怀疑:缓存。为了防止浏览器缓存页面(包括音频),我修改了代码:

<html>
<head>
// Add these two meta tags in order to set the caching off and never
// be cached again at expiration
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<script type="text/javascript" language="javascript">
function Speak() {
    document.getElementById("Speech").load();
    document.getElementById("Speech").play();
}
</script>
</head>

<body>
<audio id="Speech" src="speech.wav"></audio>
<button type="button" onclick="Speak()">Speak</button>
</body>
</html>

//添加这两个meta标记,以设置缓存关闭,并且永不关闭
//过期时再次缓存
函数Speak(){
document.getElementById(“Speech”).load();
document.getElementById(“Speech”).play();
}
通话
现在,每当我更改
speech.wav
的内容时,它都能正常工作