我正在努力解决这个问题。
我正在将音乐上传到我们的服务器,效果很好。当我播放这首歌时,它会播放并停止播放。
但是当我上传一首同名的新歌时,我直接从服务器播放这首歌,我可以听到它是新歌,但是当我用jQuery播放这首歌时,它仍然会播放旧歌。
我的音乐代码如下:
HTML
<span id="toggle_<?= $number; ?>_music" class="badge play_music" style="background-color: green; cursor: pointer;" onclick="sadsc_play_entry_music('<?= $number; ?>')">
<audio id="entry_<?= $entry['location_entry_id']; ?>_music">
<source src="comps/sadsc/music/<?= $location; ?>/<?= $number; ?>.<?= $extention; ?>" />
</audio>
</span>
JS
function sadsc_play_entry_music(entry_id)
{
file = "#entry_"+entry_id+"_music";
var player = $(file)[0];
if (!player.paused)
{
player.pause();
player.currentTime = 0;
$('#toggle_'+entry_id+'_music').css('background-color', 'green');
$('#toggle_'+entry_id+'_music i').removeClass('fa-stop').addClass('fa-play');
}
else
{
all_audio = $('audio');
all_audio.each(function( index ) {
all_audio[index].pause();
all_audio[index].currentTime = 0;
});
$('.play_music').css('background-color', 'green');
$('.play_music i').removeClass('fa-stop').addClass('fa-play');
player.play();
$('#toggle_'+entry_id+'_music').css('background-color', 'orange');
$('#toggle_'+entry_id+'_music i').removeClass('fa-play').addClass('fa-stop');
}
}
我试过了
player.load();
重新加载文件,但没有做任何事。
提前完成
答案 0 :(得分:1)
问题来自浏览器缓存,因为网址没有更改,所以不会再次下载文件。
强制浏览器下载新文件的常用方法是将唯一的随机数作为GET参数添加到网址
使用javascript你可以这样做:
var url = "http://example.com/mymusicfile?r="+(+new Date);