<!DOCTYPE HTML>
<HTML LANG="ja">
<HEAD>
<META CHARSET="Shift_JIS">
<TITLE>勝手に字幕</TITLE>
</HEAD>
<BODY STYLE="background-color:#CCFFFF">
<DIV STYLE="text-align:center">
<BR>
<B>勝手に字幕</B>
<BR><BR>
<FORM onSubmit="return false">
動画 URL:
<INPUT TYPE=TEXT ID="file" SIZE=60 onKeyPress="if(event.which == 13) open_video()">
<INPUT TYPE=BUTTON VALUE="開く" onClick="open_video()">
</FORM>
<BR>
<DIV ID="wid1" STYLE="width:420px; margin-left:auto; margin-right:auto">
<DIV ID="base" STYLE="position:relative; width:320px; height:240px; background-color:black; margin-left:auto; margin-right:auto">
<VIDEO ID="vid" AUTOPLAY STYLE="position:absolute; left:0; top:0"></VIDEO>
<SPAN ID="txt" STYLE="position:absolute; left:0; bottom:0; padding:2px; font-weight:bold; color:white; text-shadow:black 0 0 0.3em; cursor:default">
</SPAN>
</DIV>
</DIV>
</DIV>
<DIV ID="wid2" STYLE="position:relative">
<SPAN ID="txt2" STYLE="position:absolute; padding:2px; font-weight:bold; visibility:hidden"></SPAN>
</DIV>
<SCRIPT TYPE="text/javascript">
<!--
function open_video() {
if(to_id != undefined) {
clearTimeout(to_id);
to_id = undefined;
}
elem_txt.innerHTML = "";
var loc = document.getElementById("file").value.trim();
if(!loc.length)
return;
elem_vid.src = loc;
elem_vid.load();
}
function vid_loaded() {
if(!(vid_w = elem_vid.videoWidth))
vid_w = 320;
if(!(vid_h = elem_vid.videoHeight))
vid_h = 240;
elem_base.style.width = elem_txt.style.width = String(vid_w) + "px";
elem_base.style.height = String(vid_h) + "px";
document.getElementById("wid1").style.width = document.getElementById("wid2").style.width
= String(vid_w + 100) + "px";
elem_txt.style.fontSize = elem_txt2.style.fontSize
= String(Math.max(11, 7 + Math.floor(vid_w / 80))) + "pt";
}
function vid_play() {
// なぜか動画をロードしていないのにイベントが発生するときがある
if(elem_vid.src == "")
return;
to_id = setTimeout(new_cap, 3000);
}
function vid_pause() {
clearTimeout(to_id);
to_id = undefined;
}
function vid_ended() {
clearTimeout(to_id);
to_id = undefined;
elem_txt.innerHTML = "";
}
function new_cap() {
elem_txt.innerHTML = elem_txt2.innerHTML = caption[Math.floor(Math.random() * caption.length)];
elem_txt.style.textAlign = (elem_txt2.clientWidth > vid_w) ? "left" : "center";
to_id = setTimeout(new_cap, 7000 + Math.floor(Math.random() * 3000));
}
function txt_mouse(e) {
e.preventDefault();
}
//----------------------------------------------------------
caption = [
"世界初公開の貴重な映像です。",
"身の毛もよだつ恐怖の心霊映像",
"衝撃映像! カメラが捉えた決定的瞬間!",
"独占スクープ映像! Y&K密会の現場!",
"決算大セール! 赤字覚悟の大安売り!",
"1個 100円、5個で 400円にオマケ!",
"全国の書店、コンビニにて絶賛発売中!",
"地球にやさしい、とってもエコな製品です。",
"古池や 坊主転んで 河童の屁",
"To be, or not to be, that is the question.",
"<SPAN STYLE='font-size:120%'>This is a pen.</SPAN>",
"メリーさん、メリーさん、私はあなたを愛します。",
"材料 … ご飯:茶碗1杯 玉子:1個 醤油:少々",
"この洗練されたフォルム、優雅な走り!",
"画期的な大発明 !!",
"驚異のスーパー テクノロジー",
"E = m c<SUP>2</SUP>",
"今日は全国各地で記録的な猛暑となりました。",
"明日は猛烈な寒波が押し寄せることが予想されます。",
"<SPAN STYLE='position:relative'><SPAN STYLE='font-size:1.3em'>外</SPAN><SPAN STYLE='position:absolute; left:0.6em; top:-1.6em; font-size:0.6em; width:3em; text-align:left'>げ</SPAN>"
+ "<SPAN STYLE='position:relative'><SPAN STYLE='font-size:1.3em'>道</SPAN><SPAN STYLE='position:absolute; left:0; top:-1.6em; font-size:0.6em; width:3em; text-align:left'>どう</SPAN>"
+ "<SPAN STYLE='position:relative'><SPAN STYLE='font-size:1.3em'>照</SPAN><SPAN STYLE='position:absolute; left:-0.2em; top:-1.6em; font-size:0.6em; width:3em; text-align:left'>しょう</SPAN>"
+ "<SPAN STYLE='position:relative'><SPAN STYLE='font-size:1.3em'>身</SPAN><SPAN STYLE='position:absolute; left:0.1em; top:-1.6em; font-size:0.6em; width:3em; text-align:left'>しん</SPAN>"
+ "<SPAN STYLE='font-size:1.3em'> </SPAN>"
+ "<SPAN STYLE='position:relative'><SPAN STYLE='font-size:1.3em'>霊</SPAN><SPAN STYLE='position:absolute; left:0; top:-1.6em; font-size:0.6em; width:3em; text-align:left'>れい</SPAN>"
+ "<SPAN STYLE='position:relative'><SPAN STYLE='font-size:1.3em'>波</SPAN><SPAN STYLE='position:absolute; left:0.6em; top:-1.6em; font-size:0.6em; width:3em; text-align:left'>は</SPAN>"
+ "<SPAN STYLE='position:relative'><SPAN STYLE='font-size:1.3em'>光</SPAN><SPAN STYLE='position:absolute; left:0; top:-1.6em; font-size:0.6em; width:3em; text-align:left'>こう</SPAN>"
+ "<SPAN STYLE='position:relative'><SPAN STYLE='font-size:1.3em'>線</SPAN><SPAN STYLE='position:absolute; left:0; top:-1.6em; font-size:0.6em; width:3em; text-align:left'>せん</SPAN>",
"なんでやねん!",
"あなたは醤油派? それともソース派?",
"太古の地球の様子",
"古より連綿と受け継がれし匠の技",
"( 上底 + 下底 ) × 高さ ÷ 2",
"HCl + NaOH → NaCl + H<SPAN STYLE='font-size:70%'>2</SPAN>O",
"3LDK 日当たり良好 駅より徒歩3分",
"時給1000円 9:00〜20:00の間 週3〜4日",
"レベル 3 ライフ 3200 スコア 23700",
"人類滅亡の時まで、あと291日",
"使用上の注意をよく読み、用法・用量を守って正しくお使い下さい。",
"この物語はフィクションであり、登場する人物・団体等の名称はすべて架空のものです。",
"冬はつとめて。雪の降りたるはいふべきにもあらず。",
"巧言令色鮮矣仁 剛毅木訥近矣仁"
];
elem_base = document.getElementById("base");
elem_vid = document.getElementById("vid");
elem_txt = document.getElementById("txt");
elem_txt2 = document.getElementById("txt2");
elem_vid.addEventListener("loadedmetadata", vid_loaded, false);
elem_vid.addEventListener("play", vid_play, false);
elem_vid.addEventListener("pause", vid_pause, false);
elem_vid.addEventListener("ended", vid_ended, false);
with(elem_txt) {
onmousedown = onmouseup = onclick = oncontextmenu = txt_mouse;
}
to_id = undefined;
// ページを再ロードしたときのため
document.forms[0].reset();
//-->
</SCRIPT>
</BODY>
</HTML>
|