我正在使用jquery将字符串发布到php文件,如下所示:
$.ajax({
type: "POST",
url:"save0.php",
data: {data:subtitle},
success: function() {
console.log("message sent!")}
});
然后,php 文件将其写入 .vtt(字幕(文件,并将该文件加载回循环 html5 视频的轨道元素中。现在,每次视频循环播放时,它都有不同的字幕:
$("#subtitles").attr("src", "subtitle/sub1.vtt");
我使用以下行删除最后一个轨道 src(否则视频不会循环(:
$("#subtitles").removeAttr("src");
不幸的是它不起作用,似乎字幕只能在刷新浏览器时使用。当视频尝试循环播放时,它就会卡住,可能是因为它找不到 track src 元素(我已经调试了一段时间(。难道新写入的文件只能在刷新后使用吗?或者有没有另一种方法来"加载"新写入的文件?
我通过在字幕文件之间交替修复了它:
$("#subtitles").removeAttr("src");
if (subcounter == "ae"){
$.ajax({type: "POST",url:"save0.php",data: {data:subtitle},success: function() {console.log("message sent!")}});
$("#subtitles").attr("src", "subtitle/sub1.vtt");
console.log("true");
};
if (subcounter == "ea"){
$.ajax({type: "POST",url:"save1.php",data: {data:subtitle},success: function() {console.log("message sent!")}});
$("#subtitles").attr("src", "subtitle/sub0.vtt");
console.log("false");
};
然后在循环结束时,它反转子计数器字符串:
function reverse(s){
return s.split("").reverse().join("");
};
subcounter = reverse(subcounter);