index.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <html>
  2. <head><title>WavPlayer - flash wav/au player for arbitrary samplerate and PCM/G711 codecs</title>
  3. <script>
  4. function getPlayer(pid) {
  5. var obj = document.getElementById(pid);
  6. if (obj.doPlay)
  7. return obj;
  8. for (i = 0; i < obj.childNodes.length; i++) {
  9. var child = obj.childNodes[i];
  10. if (child.tagName == "EMBED")
  11. return child;
  12. }
  13. }
  14. function doPlay(fname) {
  15. var player = getPlayer('haxe');
  16. player.doPlay(fname);
  17. }
  18. function doStop() {
  19. var player = getPlayer('haxe');
  20. player.doStop();
  21. }
  22. function setVolume(v) {
  23. var player = getPlayer('haxe');
  24. player.setVolume(v);
  25. }
  26. function setPan(p) {
  27. var player = getPlayer('haxe');
  28. player.setPan(p);
  29. }
  30. var SoundLen = 0;
  31. var SoundPos = 0;
  32. var Last = undefined;
  33. var State = "STOPPED";
  34. var Timer = undefined;
  35. function getPerc(a, b) {
  36. return ((b == 0 ? 0.0 : a / b) * 100).toFixed(2);
  37. }
  38. function FileLoad(bytesLoad, bytesTotal) {
  39. document.getElementById('InfoFile').innerHTML = "Loaded " + bytesLoad + "/" + bytesTotal + " bytes (" + getPerc(BytesLoad, BytesTotal) + "%)";
  40. }
  41. function SoundLoad(secLoad, secTotal) {
  42. document.getElementById('InfoSound').innerHTML = "Available " + secLoad.toFixed(2) + "/" + secTotal.toFixed(2) + " seconds (" + getPerc(secLoad, secTotal) + "%)";
  43. SoundLen = secTotal;
  44. }
  45. var InfoState = undefined;
  46. function Inform() {
  47. if (Last != undefined) {
  48. var now = new Date();
  49. var interval = (now.getTime() - Last.getTime()) / 1000;
  50. SoundPos += interval;
  51. Last = now;
  52. }
  53. InfoState.innerHTML = State + "(" + SoundPos.toFixed(2) + "/" + SoundLen.toFixed(2) + ") sec (" + getPerc(SoundPos, SoundLen) + "%)";
  54. }
  55. function SoundState(state, position) {
  56. if (position != undefined)
  57. SoundPos = position;
  58. if (State != "PLAYING" && state == "PLAYING") {
  59. Last = new Date();
  60. Timer = setInterval(Inform, 100);
  61. Inform();
  62. } else
  63. if (State == "PLAYING" && state != "PLAYING") {
  64. clearInterval(Timer);
  65. Timer = undefined;
  66. Inform();
  67. }
  68. State = state;
  69. Inform();
  70. }
  71. function init() {
  72. var player = getPlayer('haxe');
  73. if (!player || !player.attachHandler)
  74. setTimeout(init, 100); // Wait for load
  75. else {
  76. player.attachHandler("progress", "FileLoad");
  77. player.attachHandler("PLAYER_LOAD", "SoundLoad");
  78. player.attachHandler("PLAYER_BUFFERING", "SoundState", "BUFFERING");
  79. player.attachHandler("PLAYER_PLAYING", "SoundState", "PLAYING");
  80. player.attachHandler("PLAYER_STOPPED", "SoundState", "STOPPED");
  81. player.attachHandler("PLAYER_PAUSED", "SoundState", "PAUSED");
  82. InfoState = document.getElementById('InfoState')
  83. Inform();
  84. }
  85. }
  86. </script>
  87. </head>
  88. <body bgcolor="#dddddd" onload="init()">
  89. <a href="javascript:doPlay('tesg.gsm')">doPlay('test askoziza')</a>
  90. <div id="InfoFile"></div>
  91. <div id="InfoSound"></div>
  92. <div id="InfoState"></div>
  93. <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
  94. width="2000"
  95. height="3000"
  96. id="haxe"
  97. align="middle">
  98. <param name="movie" value="wavplayer.swf?gui=full&h=20&w=300&sound=test-vf-44100.au&"/>
  99. <param name="allowScriptAccess" value="always" />
  100. <param name="quality" value="high" />
  101. <param name="scale" value="noscale" />
  102. <param name="salign" value="lt" />
  103. <param name="bgcolor" value="#dddddd"/>
  104. <embed src="wavplayer.swf?gui=full&h=20&w=300&sound=test-vf-44100.au&"
  105. bgcolor="#dddddd"
  106. width="2000"
  107. height="3000"
  108. name="haxe"
  109. quality="high"
  110. align="middle"
  111. scale="noscale"
  112. allowScriptAccess="always"
  113. type="application/x-shockwave-flash"
  114. pluginspage="http://www.macromedia.com/go/getflashplayer"
  115. />
  116. </object>
  117. </body>
  118. </html>