HTML5入门

PaymentOne将推出HTML5营运支付应用

字号+ 作者: 来源: 2014-11-16 20:49 我要评论( )

如今HTML已经是比较热门的了,各种关于HTML5的应用程序、游戏、应用商店等也如火如荼的展开了。各大主流浏览器也纷纷开始支持HTML5标准,以备打赢新的一轮浏览器大战。请查看: 谷

 如今HTML已经是比较热门的了,各种关于HTML5的应用程序、游戏、应用商店等也如火如荼的展开了。各大主流浏览器也纷纷开始支持HTML5标准,以备打赢新的一轮浏览器大战。请查看:谷歌Chrome打造Web平台新航母:拭目以待http://tech.it168.com/a2012/0217/1313/000001313414.shtml )

话不多说,不知道大家有没有发现,可以用比较新的版本的谷歌浏览器直接打开.mp3格式的音乐。自己可以试试:

这是用谷歌浏览器直接打开mp3文件的情况。 其实,许多新的浏览器都开始支持HTML5中 标签,使得一些格式的流媒体可以摆脱对插件的依赖。 下面我就以标签做一个简易的音乐播放器.

控件可以通过一些内置的JavaScript函数和特性进行控制,以及进行二次开发。例如load()、play()、pause()等控制音频播放的函数,paused、ended、currentTime、startTime等属性等.

对于这个简易播放器具有播放\暂停、快进、快退等功能,结合对象绘制图形

 
  1. <%@language='javascript' %> 
  2. <html> 
  3. <head> 
  4. <title>PlayMusic</title> 
  5. <style type=”text/css”> 
  6. div.s{position:absolute;left:100px;top:200px;width:600px;} 
  7. audio{width:600px;position:absolute;left:0px;top:100px;} 
  8. canvas{position:absolute;left:0px;top:40px;} 
  9. marquee{position:absolute;left:250px;top:180px;} 
  10. h1{color:Red;} 
  11. h1.a{color:Green;position:absolute;left:200px;top:50px;} 
  12. </style> 
  13. </head> 
  14. <body> 
  15. <h1 class=”a”>欢迎使用HTML5播放器</h1> 
  16. <
  17. var name = Request.QueryString(“name”); 
  18. if (name == ”") 
  19. name = ”"; 
  20. name1 = ”save_music\\” + name + ”.mp3″; 
  21. //Response.Write(name); 
  22.  
  23. %> 
  24. <marquee behavior=scroll scrolldelay=200 scrollamount=30 width=”300″ ><h1><%=name %></h1></marquee> 
  25. <div class=”s”> 
  26. <canvas width=”600″ height=”60″ id=”MusicCanvas”  onclick=”dealclick()”></canvas> 
  27. <audio id=”music” src=<%=name1 %> controls> 
  28. 您的浏览器不支持HTML5中的audio标签 
  29. </audio> 
  30. </div> 
  31. </body> 
  32. </html> 
  33. <script type=”text/javascript”> 
  34. var c = document.getElementById(“MusicCanvas”); 
  35. var cccon = c.getContext(“2d”); 
  36. var toggle = document.getElementById(“music”); 
  37. drawPS(); 
  38. drawQuick(); 
  39.  
  40. function drawPS() //flag=1表示播放命令,flag=0表示暂停 
  41. con.save(); 
  42. con.beginPath(); 
  43. var g = con.createRadialGradient(275, 30, 0, 275, 30, 25); //创建渐变颜色 
  44. if (toggle.paused) //暂停状态 
  45. g.addColorStop(0.2, ”#1FD856″); // 
  46. g.addColorStop(0.8, ”black”); // 
  47. toggle.play(); 
  48. else //播放状态 
  49. g.addColorStop(0.2, ”red”); //黄 
  50. g.addColorStop(0.8, ”black”); // 
  51. toggle.pause(); 
  52. con.fillStyle = g
  53. con.arc(275, 30, 25, 0, Math.PI * 2, true); 
  54. con.fill(); 
  55. con.closePath(); 
  56. con.restore(); 
  57.  
  58. function drawQuick() // 
  59. con.save(); 
  60. con.beginPath(); 
  61. con.fillStyle = ”grey”; 
  62. con.fillRect(130, 10, 70, 40); 
  63. con.fillStyle = ”black”; 
  64. con.moveTo(130, 30);con.lineTo(145, 13);con.lineTo(165, 13);con.lineTo(150,30);con.lineTo(165, 47);con.lineTo(145, 47);con.lineTo(130, 30); 
  65. con.fill(); 
  66. con.moveTo(160, 30); con.lineTo(175, 13); con.lineTo(195, 13); con.lineTo(180, 30); con.lineTo(195, 47); con.lineTo(175, 47); con.lineTo(160, 30); 
  67. con.fill(); 
  68. con.closePath(); 
  69. con.beginPath(); 
  70. con.fillStyle = ”grey”; 
  71. var x = 350
  72. con.fillRect(x, 10, 70, 40); 
  73. x += 70; 
  74. con.fillStyle = ”black”; 
  75. con.moveTo(x, 30); con.lineTo(x - 15, 13); con.lineTo(x - 35, 13); con.lineTo(x - 20, 30); con.lineTo(x - 35, 47); con.lineTo(x - 15, 47); con.lineTo(x, 30); 
  76. -30
  77. con.moveTo(x, 30); con.lineTo(x - 15, 13); con.lineTo(x - 35, 13); con.lineTo(x - 20, 30); con.lineTo(x - 35, 47); con.lineTo(x - 15, 47); con.lineTo(x, 30); 
  78. con.fill(); 
  79. //con.moveTo(160, 40); con.lineTo(175, 23); con.lineTo(195, 23); con.lineTo(180, 40); con.lineTo(195, 57); con.lineTo(175, 57); con.lineTo(160, 40); 
  80. con.fill(); 
  81. con.closePath(); 
  82. con.restore(); 
  83. function dealclick()//处理敲击事件 
  84. var x = event.clientX; 
  85. var y = event.clientY; 
  86. var flag = getPos(x, y); 
  87. //alert(x.toString() + ”  ” + y.toString()+”  ”+flag.toString()); 
  88. if(flag==0) 
  89. return; 
  90. switch (flag)// 
  91. case 1: drawPS(); break; 
  92. case 2: quickOrslow(0); break; 
  93. case 3: quickOrslow(1); break; 
  94. function getPos(x, y) // 
  95. var px=100
  96. var py=240
  97. x-=px
  98. y-=py
  99. if (x >= 275 && x <= 325 && y >= 15 && y<= 65) 
  100. return 1; 
  101. if (x >= 130 && x <= 200 && y >= 20 && y <= 60) 
  102. return 2; 
  103. if (x >= 350 && x <= 420 && y >= 20 && y <= 60) 
  104. return 3; 
  105. return 0; 
  106. function quickOrslow(flag) // 
  107. var total = toggle.duration; 
  108. var s = Math.ceil(total*0.05); 
  109. if (flag == 1)//kuaijin 
  110. if (toggle.ended == true) 
  111. return; 
  112. var now = toggle.currentTime; 
  113. if (total - now <= s) 
  114. return; 
  115. else 
  116. toggle.currentTime = now + s; 
  117. else  //后退 
  118. var n = toggle.currentTime; 
  119. if (n < s
  120. return; 
  121. else 
  122. toggle.currentTime = n - s; 
  123.  
  124. </script> 

这是全部的源代码,当然其中包含了一些ASP语句,适用于传递歌曲名的,可以不用考虑。 

drawPS()
是控制播放与暂停的函数,quickOrSlow()是控制快退的函数。 
当然这个播放器是非常简陋的,但是通过加工美化,还是可以做出优秀的播放器的,而且是没有插件的。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5的视频格式之争

    HTML5的视频格式之争

    2014-11-16 20:49

  • Windows Internet Explorer 10 开发者指南

    Windows Internet Explorer 10 开发者指南

    2014-11-16 20:49

  • 16 个印象深刻的 HTML5/CSS3/JavaScript 体验

    16 个印象深刻的 HTML5/CSS3/JavaScript 体验

    2014-11-16 20:49

  • 移动开发中HTML5能否替代本地程序?

    移动开发中HTML5能否替代本地程序?

    2014-11-16 20:49

网友点评