我正在尝试播放一个音频文件,到目前为止,我可以通过以下方式完成:
a = new Audio("audio.mp3");
a.load();
a.play();
但是在播放之后我想要做的就是我正在创建具有相同名称的新音频文件。现在再次当我单击一个按钮并运行此功能来播放音频时,它将播放以前的文件输出而不是新的输出。所以我如何重新上传同名文件,以便生成新的音频。
由于
答案 0 :(得分:1)
由于浏览器缓存而导致您继续获取相同音频文件的原因,因为浏览器假定这两个文件相同,所以它的名称相同。为了防止这种情况,您可以将随机查询字符串附加到文件名,以便浏览器每次都认为您有一个新文件。但是,这方面的缺点是您的用户每次都必须下载音频文件,这可能会减慢您的用户加载时间。
a = new Audio("audio.mp3?random=" + new Date().getTime());
a.load();
a.play();
如果您可以访问上传时间,则可以附加日期时间而不是随机日期时间,至少会强制浏览器每次上传时只下载一次文件。
a = new Audio("audio.mp3?random=" + uploadDate.getTime());
a.load();
a.play();
答案 1 :(得分:0)
如果要加载另一个具有相同名称的文件(或者甚至可能使用其他名称,在同一个对象中),则需要删除以前的对象!
a.remove()
会做到这一点:
a = new Audio('a.mp3');
a.load();
a.play();
setTimeout(function(){a.pause();a.remove();a.load('a.mp3');a.play();},10000);
以上代码加载a.mp3
播放10秒钟。 10秒钟后,它再次加载a.mp3,然后再填充该文件中的内容。
你需要足够快以在10秒内用相同的名字替换音频文件:D(或只是提高超时秒数)