|
視頻很好,也有中文字幕等。下面也提供高清版本下載,很是欣喜。
遺憾的是,字幕不提供下載。(或者說(shuō)我沒(méi)有找到)
俗話說(shuō),自己動(dòng)手豐衣足食。直接拿Firebug找到字幕文件地址,下載下來(lái)看到是JSON格式的,隨即想到直接用JS輸出字符串就可以轉(zhuǎn)換到srt字幕。
代碼如下,非常簡(jiǎn)單的代碼,實(shí)用就好,不求效率、安全和邊界問(wèn)題,只求最快解決我的問(wèn)題~
不得不說(shuō),學(xué)一門(mén)編程語(yǔ)言很有意義,不論是什么,都能很方便解決一些實(shí)際的問(wèn)題。這很開(kāi)心。
JS仔細(xì)說(shuō)來(lái)是一門(mén)很強(qiáng)大的語(yǔ)言,處理JSON和XML都很方便,大多數(shù)時(shí)候應(yīng)付足夠了。不過(guò)也會(huì)有力不從心的時(shí)候,尤其是對(duì)于系統(tǒng)的操作,總有很多缺陷。不過(guò)如果算上微軟的JScript的話,也很可以了。曾經(jīng)想學(xué)Python,現(xiàn)在也坦然了,隨便用什么,喜歡就好。或許,這與我不再?gòu)氖翴T相關(guān)行業(yè)有關(guān)吧。夠用就行咯~
復(fù)制代碼 代碼如下:
//讀取chi_hans文件
$.getJSON("chi_hans",function(json) {
var c=json.captions,o=[];
for (var i=0,l=c.length; i<l; i++) {
o.push(i+1);
//這里的18500是時(shí)間偏移
o.push(timeline(c[i].startTime+18500)+" --> "
+timeline(c[i].startTime+c[i].duration+18500));
o.push(c[i].content);
o.push("");
//if (i==5) break;
}
//這里我輸出到一個(gè)textarea
$("#output").text(o.join("/r"));
});
//這是根據(jù)JSON里時(shí)間得到srt字幕里的時(shí)間
function timeline(time) {
t=new Date(time);
return [
leadZero(t.getUTCHours()),
leadZero(t.getUTCMinutes()),
leadZero(t.getUTCSeconds())
].join(":")+","+leadZero3(t.getUTCMilliseconds());
}
//加入前導(dǎo)零
function leadZero(s) {
if (s<10) {
return "0"+s;
}else {
return s;
}
}
//這也是前導(dǎo)零,三位數(shù)的
function leadZero3(s) {
var ret;
if (s<10) {
ret="00"+s;
}else if (s<100) {
ret= "0"+s;
}else {
ret=s;
}
return ret;
}
JavaScript技術(shù):Firebug 字幕文件JSON地址獲取代碼,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。