forked: wav to script teetteet Follow 2014-02-24 21:29:23 License: MIT License Fork0 Fav0 View970 Play Stop Reload Fullscreen Smart Phone Readme JavaScript 71 lines HTML 9 lines CSS 10 lines forked: wav to script // forked from jagarikin's "wav to script" http://jsdo.it/jagarikin/d7v6 function towav(){ var a,b,c,bit,len,str; var blob,url,purl,aud; str=document.getElementById("input").value; len=str.length; bit=new Uint8Array(44+len); a=[82,73,70,70,0,0,0,0, 87,65,86,69,102,109,116,32,16,0,0,0, 1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0, 100,97,116,97,0,0,0,0]; for(b=0;b<44;b++)bit[b]=a[b]; for(a=0;a<str.length;a++){ b=str.charCodeAt(a); if(b>255)b=32; bit[a+44]=b; } bit[40]=len>>0 & 0xFF; bit[41]=len>>8 & 0xFF; bit[42]=len>>16 & 0xFF; bit[43]=len>>24 & 0xFF; len+=36; bit[4]=len>>0 & 0xFF; bit[5]=len>>8 & 0xFF; bit[6]=len>>16 & 0xFF; bit[7]=len>>24 & 0xFF; blob = new Blob([bit], {'type': 'audio/wav'}); url = window.URL || window.webkitURL; purl=url.createObjectURL(blob); aud=document.getElementById("player"); aud.src=purl; aud.volume=0.4; } function toscript(){ var a,b,c; a=new FileReader(); b=document.getElementById("file").files[0]; if(!b){ alert("ファイルが選択されてません"); return; } a.readAsBinaryString(b); a.onload=function(e){ var head,nscript; head = document.getElementsByTagName('head')[0]; e=e.target.result; e=e.substring(44); nscript = document.createElement("script"); nscript.type = "text/javascript"; nscript.name = "topScript"; nscript.id = "topScript"; nscript.charset = "utf-8"; nscript.async = true; nscript.text = e; head.appendChild(nscript); }; } <textarea id="input" rows="5" cols="50"> alert(123+45); </textarea><br /> <input type="button" value="wav化" onclick="towav()"> <audio id="player" controls></audio> <br /><br /><br /><br /><br /><br /><br /><br /> <input id="file" type="file" /> <input type="button" value="script化" onclick="toscript()"> <br /><canvas></canvas> forked: wav to script * { margin: 0; padding: 0; border: 0; } body { background: #fdd; font: 30px sans-serif; } // forked from jagarikin's "wav to script" http://jsdo.it/jagarikin/d7v6 function towav(){ var a,b,c,bit,len,str; var blob,url,purl,aud; str=document.getElementById("input").value; len=str.length; bit=new Uint8Array(44+len); a=[82,73,70,70,0,0,0,0, 87,65,86,69,102,109,116,32,16,0,0,0, 1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0, 100,97,116,97,0,0,0,0]; for(b=0;b<44;b++)bit[b]=a[b]; for(a=0;a<str.length;a++){ b=str.charCodeAt(a); if(b>255)b=32; bit[a+44]=b; } bit[40]=len>>0 & 0xFF; bit[41]=len>>8 & 0xFF; bit[42]=len>>16 & 0xFF; bit[43]=len>>24 & 0xFF; len+=36; bit[4]=len>>0 & 0xFF; bit[5]=len>>8 & 0xFF; bit[6]=len>>16 & 0xFF; bit[7]=len>>24 & 0xFF; blob = new Blob([bit], {'type': 'audio/wav'}); url = window.URL || window.webkitURL; purl=url.createObjectURL(blob); aud=document.getElementById("player"); aud.src=purl; aud.volume=0.4; } function toscript(){ var a,b,c; a=new FileReader(); b=document.getElementById("file").files[0]; if(!b){ alert("ファイルが選択されてません"); return; } a.readAsBinaryString(b); a.onload=function(e){ var head,nscript; head = document.getElementsByTagName('head')[0]; e=e.target.result; e=e.substring(44); nscript = document.createElement("script"); nscript.type = "text/javascript"; nscript.name = "topScript"; nscript.id = "topScript"; nscript.charset = "utf-8"; nscript.async = true; nscript.text = e; head.appendChild(nscript); }; } <textarea id="input" rows="5" cols="50"> alert(123+45); </textarea><br /> <input type="button" value="wav化" onclick="towav()"> <audio id="player" controls></audio> <br /><br /><br /><br /><br /><br /><br /><br /> <input id="file" type="file" /> <input type="button" value="script化" onclick="toscript()"> <br /><canvas></canvas> * { margin: 0; padding: 0; border: 0; } body { background: #fdd; font: 30px sans-serif; } use an iframe compat browser, deer Play on jsdo.it games Author Share ブログに埋め込む QR Tag Download Complete! Description What kind of game? Control Device Smartphone Controllerjsdo.it WebSocket Controller» Mouse Keyboard Touch Device Fullscreen Activated Inactivated jsdo.it games から削除する Submit Author teetteet Tweet Default Panel Auto play Screenshot Readme JavaScript HTML CSS Size Width: px Height: px code <script type="text/javascript" src="http://jsdo.it/blogparts/982h/js"></script> application compress html5_elements&api library library&test other user_interface Discussion Questions on this code? Tags application compress html5_elements&api library library&test other user_interface