array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 HTML5开发学习(1):使用aduio标签打造音乐播放器 - 爱码网

  关于html5的炒作已经有一段时间了,小弟亦是个跟风之人,对该新鲜事物也充满好奇和期待。本文为该系列(HTML5尝鲜)第一节,先以一个简单的demo开胃,希望能勾起各位同学对html5的兴趣和关注。

  html5里有一个新标签audio,该标签用以定义声音,比如音乐或其他音频流。
 既然audio标签可以播放音频,那我们可以不再使用flash、wmp等其他任何第三方组件,轻而易举的使用纯html来打造一个音乐播放器。

  例子:
<audio src="someaudio.MP3"></audio>

  或
<audio >
<source src="someaudio.MP3"/>

  </audio>

  下面是小弟用audio做的一个音乐播放器的界面,先睹为快:

   HTML5开发学习(1):使用aduio标签打造音乐播放器

 

   audio 有几个属性:
          src:String型,所播放音频的 url。
          autoplay:bool型,如果是 true,则音频在就绪后马上播放。默认为false。
          controls:bool型,如果是 true,则向用户显示控件,比如播放按钮。默认为false。
          更多详细属性:http://www.w3school.com.cn/html5/html5_audio.asp

  audio 有几个事件:
          onended:当媒介已抵达结尾时运行脚本,也就是当前歌曲播放完了,这里的“媒介”是指audio标签。
          onloadstart:当浏览器开始加载媒介数据时运行脚本。
          onplay:当媒介数据将要开始播放时运行脚本。这里的“媒介数据”是指播放的文件。
          onplaying:当媒介数据已开始播放时运行脚本。
          onpause:当媒介数据暂停时运行脚本。
          onerror:当加载媒介数据出错时运行的脚本。(w3school不是这样解释的)
          更多详细事件:http://www.w3school.com.cn/html5/html5_ref_eventattributes.asp#Media_Events

 
打造该播放器的完整代码如下:

HTML

<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>无标题页</title>
    
<style type="text/css">
    body
    
{ font-size:13px;
      font-family
:宋体;
    
}
    #ul_musicList
    
{
      width
:300px;
      list-style-type
:none;   
      margin
:5px 0 3px 0;
      padding
:0px;    
    
}  
     #ul_musicList li
     
{
          padding
:5px;
          border
:solid 1px #EEEEEE;
     
}   
    
</style>
    
<script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script>
    
<script src="Scripts/MusicBox.js" type="text/javascript"></script>
    
<script type="text/javascript">
    
var mb=null;
    $().ready(
function(){
    mb
=new MusicBox();
    mb.init();
    });
    
</script>
</head>
<body >
    
<div>
  
<audio id="musicBox"  controls="true" 
    onended
="mb.nextMusic()" 
    onloadstart
="mb.loadStart()" 
    onplaying
="mb.playing()" 
    onpause
="mb.pausePaly()" 
    onerror
="mb.loadError()"
    
>
  
</audio> 
  
<br /> <input id="btnNext" type="button" value="下一首" onclick="javascript:mb.nextMusic()"  />
  
<span id="sn_status"></span><br /> 
  
<div style=" margin-top:5px">歌曲列表:</div>
    
<ul id="ul_musicList"  >
  
</ul>
 
<div style="width:300px; text-align:right">
       播放模式:
<select id="slt_playMode">
            
<option value="1">全部循环</option>
            
<option value="2">单曲循环</option>
        
</select>
        
</div>
  
</div>
</body>
</html>

 

MusicBox.js
MusicBox=function (){
    
var _this=this;
    
var  media= document.getElementById("musicBox"); 
    
var  musicFiles=[
                   {name:
"犯错",url:"http://www.yandui.com/upload/sound/2009-9-20/20_34_25_953_.mp3"} ,
                   {name:
"天使的翅膀",url:"http://www.masradio.com.cn/uploadfile/program/uploadfile/200805/20080522090800196.mp3"},
                   {name:
"无名轻音乐",url:"http://audio.ngfiles.com/88000/88260_Zanarkan_Mastered_Piano_Ve.mp3"},
                   {name:
"草泥马之歌",url:"http://www.cnblogs.com"},//错误的资源
                   {name:"相思风雨中",url:"http://www.czopen.com/club/forum/files/247.mp3"}
                   ];
    
//当前正在播放的歌曲的索引               
    var index=-1;
    
//当前正在播放的歌曲
    var playingFile=null;
    
//播放模式
    var playMode=1;
    
//下一首
    this.nextMusic=function(){
       
if(playMode=="1"){
            index
+=1;
        }
        
if(index==musicFiles.length){
            index
=0;
        }
        playingFile
=musicFiles[index];
        media.setAttribute(
"src",playingFile.url); 
        media.play();
        $(
"#ul_musicList").children().css({"background-color":"#FFF","border":"solid 1px #EEEEEE","color":"#000"});
        $( $(
"#ul_musicList").children()[index]).css({"background-color":"#2C7DE2","border":"solid 1px #206DDF","color":"#FFF"});
     
    }
    
//加载
    this. loadStart=function(){
        $(
"#sn_status").text("加载中....");
    }
    
//播放
    this. playing=function(){
         $(
"#sn_status").text("当前正在播放:"+playingFile.name);
    } 
    
//暂停
    this. pausePaly=function(){
         $(
"#sn_status").text("暂停:"+playingFile.name);
    }
    
//加载出错
    this. loadError=function(){
        $(
"#sn_status").text("加载“"+playingFile.name+"”失败,可能资源不存在~");
    }
    
//初始化
    this.init=function(){
        
for(var a in musicFiles){
        $(
"#ul_musicList").append("<li>"+musicFiles[a].name+"</li>");
        }
        _this.nextMusic();
        $(
"#slt_playMode").change(function(){
        playMode
=$("#slt_playMode").val();
        });
    }
}

 

如果您能在下面看到播放器并听到背景音乐,那说明您当前使用的浏览器支持HTML5 。

 原文地址:http://www.cnblogs.com/xumingxiang/archive/2010/05/11/1732672.html

作者 : 徐明祥
出处:http://www.cnblogs.com/xumingxiang 
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任

 

相关文章: