我想打一個音頻文件,到目前爲止,我能夠通過做到這一點:的Javascript:如何加載更新的音頻文件並進行播放
a = new Audio("audio.mp3");
a.load();
a.play();
但是玩它什麼,我試圖做後是我正在創建具有相同名稱的新音頻文件。現在再次單擊一個按鈕並運行此功能播放音頻時,它將播放以前的文件輸出而不是新的文件。所以我如何重新上傳同名的同一個文件,以便生成新的音頻。
感謝
我想打一個音頻文件,到目前爲止,我能夠通過做到這一點:的Javascript:如何加載更新的音頻文件並進行播放
a = new Audio("audio.mp3");
a.load();
a.play();
但是玩它什麼,我試圖做後是我正在創建具有相同名稱的新音頻文件。現在再次單擊一個按鈕並運行此功能播放音頻時,它將播放以前的文件輸出而不是新的文件。所以我如何重新上傳同名的同一個文件,以便生成新的音頻。
感謝
你不斷收到,因爲瀏覽器高速緩存中相同的音頻文件,因爲它是在瀏覽器假定這兩個文件是相同的同一名稱的原因。爲防止出現這種情況,您可以在文件名後附加一個隨機查詢字符串,以便瀏覽器認爲您每次都有一個新文件。但是這樣做的缺點是您的用戶每次都必須下載音頻文件,這可能會減慢用戶的加載時間。
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();
如果要加載具有相同名稱的另一個文件(甚至可能是另一個名稱,在同一個對象中),則需要刪除先前的對象! 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(或只是提高超時秒)
音頻文件可能緩存,所以當你再次加載它,它會使用緩存版本。刷新頁面或強制它再次下載。 –