Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery <;音频>;如何防止流文件上的缓存?_Jquery_Html5 Audio - Fatal编程技术网

Jquery <;音频>;如何防止流文件上的缓存?

Jquery <;音频>;如何防止流文件上的缓存?,jquery,html5-audio,Jquery,Html5 Audio,我正在创建一个小型HTML5音频播放器,它可以播放流媒体文件。 这些控件(只需播放和暂停)由jQuery管理,工作正常 但我看到的是,当我停止播放并重新开始播放时,它不会刷新音频缓冲区,使其与流式音乐保持同步。。。但只是暂停,然后从我暂停的地方重新开始。 要正确地重新启动文件流(我的意思是:保持与流的同步),我必须按F5 为了尝试在每次按下tipe PLAY时强制更新,我在URL中添加了经典的时间戳,并根据单击的按钮添加(和删除)html标记,但没有成功 我还从音频中删除了“preload”标签

我正在创建一个小型HTML5音频播放器,它可以播放流媒体文件。 这些控件(只需播放和暂停)由jQuery管理,工作正常

但我看到的是,当我停止播放并重新开始播放时,它不会刷新音频缓冲区,使其与流式音乐保持同步。。。但只是暂停,然后从我暂停的地方重新开始。 要正确地重新启动文件流(我的意思是:保持与流的同步),我必须按F5

为了尝试在每次按下tipe PLAY时强制更新,我在URL中添加了经典的时间戳,并根据单击的按钮添加(和删除)html标记,但没有成功

我还从音频中删除了“preload”标签,但这也不起作用

如何在每次按PLAY时完全刷新流文件,清空缓冲区?保持与原始流文件的同步,而不是被限制为按F5

HTML

。。。
...
...
...
jQuery

...
...
$('#play').click(function() {
    var d = new Date();
    var n = d.getTime();
    var streaming = "<source src=\"/radio/live.php?dev=" + n + "\" type=\"audio/mp3\">" +   "<source src=\"/radio/live_2.php?dev=" + n + "\" type=\"audio/ogg\">";
    $('#music').html(streaming);
    $('#music')[0].play();
    $('#play').css("visibility", "hidden");
    $('#pause').css("visibility", "visible");
});

$('#pause').click(function() {

    $('#music').empty();
    $('#music')[0].pause();
    $('#play').css("visibility", "visible");
    $('#pause').css("visibility", "hidden");
});
...
...
。。。
...
$(“#播放”)。单击(函数(){
var d=新日期();
var n=d.getTime();
var=“”+”;
$('#music').html(流媒体);
$(“#音乐”)[0]。播放();
$('#play').css(“可见性”、“隐藏”);
$('#pause').css(“可见性”、“可见”);
});
$(“#暂停”)。单击(函数(){
$(“#音乐”).empty();
$('#music')[0]。暂停();
$('#play').css(“可见性”、“可见”);
$('#pause').css(“可见性”、“隐藏”);
});
...
...

我确实找到了一种方法。也许这是解决方案,也许不是,但它是有效的

我在单击“暂停”时添加了这一行

location.reload(true ); 
因此,暂停的代码现在在下面。 换句话说,当点击Puse时,它会:

$('#pause').click(function() {
    location.reload(true ); // reload the content and flush any cache or buffer
});
一旦点击播放,所有内容都会与流媒体同步正确启动

$('#pause').click(function() {
    location.reload(true ); // reload the content and flush any cache or buffer
});