gpt4 book ai didi

javascript - 如何在播放视频时刷新文本 innerHTML 本身以显示?

转载 作者:行者123 更新时间:2023-11-28 03:33:54 25 4
gpt4 key购买 nike

在 Firefox 上使用时,我的字幕会在播放时与视频匹配。它在那里,但它没有在视频下方显示字幕文本,但奇怪的是,如果我单击视频进度条或拖动它,文本就会显示出来。我希望字幕文本在播放视频时自行显示。谁能帮帮我?

这里是代码,

<html>
<head>
<title>HTML5 included Javascript....</title>
<meta name="description" content="Test" charset="utf-8"></meta>
<script type="text/javascript">

var subtitleArray = new Array(); //stored all values from XML caption file

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname,false);
xhttp.send();

return xhttp.responseXML;
}

function getCaption()
{
alert("get caption");

var tempArray = new Array();
var c = document.getElementById('container');

captionsDoc = loadXMLDoc("captions.xml");
x=captionsDoc.getElementsByTagName('text');

for(var i=0;i<x.length;i++)
{
var tempArray = new Array();
tempArray[0] = x[i].getAttribute('start'); // get start time
tempArray[1] = x[i].getAttribute('dur'); // get duration time
tempArray[2] = x[i].childNodes[0].nodeValue; // get text

subtitleArray[i] = tempArray; //put all 3 values in array


}

//c.innerHTML = subtitleArray[0][2];

}

function load(){

alert("run video");

getCaption();



document.getElementById('caption').addEventListener('play', function (){

var t = document.getElementById('timer').innerHTML;

video = document.getElementById('caption');

//t.innerHTML = video.currentTime;

var text = "", cap = "";

for( var i = 0; i < subtitleArray.length;i++)
{
//alert("looping");
//var currentTime = video.currentTime();
var cueStart = parseFloat(subtitleArray[i][0]);
var cueEnd = cueStart + parseFloat(subtitleArray[i][1]);

cap = subtitleArray[i][2];

if (video.currentTime >= cueStart && video.currentTime <= cueEnd) {
text = cap;
}
var t = document.getElementById('timer').innerHTML = text;
//t.innerHTML = text;
}

}, false);


}



window.onload = load;
</script>
</head>

<body>

<div>
<video id="caption" width="320" height="240" controls>
<source src="caption.mp4" type="video/mp4">
<source src="caption.ogg" type="video/ogg" />
<source src="caption.webm" type="video/webm" />
</video>
</div>
<div id= "container">
</div>
<div id = "timer">
</div>

</body>
</html>

函数getCaptions()的作用是从xml中解析出时间和文本,存入字幕数组。function load() 调用它运行并匹配时间与视频时间显示字幕文本。

最佳答案

只要执行一个javascript函数,屏幕上的html就永远不会刷新。并且您似乎在 load() 函数内运行无限循环。因此问题。

关于javascript - 如何在播放视频时刷新文本 innerHTML 本身以显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15745832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com