`
baby69yy2000
  • 浏览: 187697 次
  • 性别: Icon_minigender_1
  • 来自: 自己输入城市...
社区版块
存档分类
最新评论

简易网页音乐播放程序

    博客分类:
  • JS-1
阅读更多
菜鸟应用JAVASCRIPT 之 简易网页音乐播放程序
—— 编程之星
2007-8-30
大家好,已经有一段时间没有在论坛发贴了.以前我在论坛发表一张贴—《菜鸟应用JAVASCRIPT 之 简单图片浏览》.虽然没有人给我回贴,但人气还算是不错的,而且还让管理员给加精了,在此要向管理员表示谢意.
那么今天我们来学习一下网页音乐播放程序的原理,这应该是大家,特别是初学者比较感兴趣的话题.我写的这个程序功能并不全面,而且界面也不美观,但这张贴旨在讨论一下其中的原理,所以就请大家将就一下啦.大家还可以在此基础上写出一个功能全面的网页播放程序出来.这个程序运行的前提是—电脑上安装了Windows Media Player.
要想实现网页音乐播放的效果,就应该对插件(Windows Media Player或Real Player)的属性和方法有一些了解.这里,我们只讨论一些本程序涉及到的Windows Media Player插件的一些属性和方法.

Windows Media Player的属性

属性名 属性值 作用
URL 歌曲的地址 设置或返回播放插件播放的歌曲文件地址
uiMode None或Mini或Full 设置播放插件是否显示控制条等
enableContextMenu True或False 设置播放插件是否显示右键菜单
controls 播放插件的一个集合属性,用来控制播放等

Windows Media Player属性controls集合的方法

方法名 作用
play() 播放歌曲
pause() 暂停歌曲
stop() 停止歌曲


程序测试连接:

http://rostar.xinwen520.net/简易网页音乐播放程序.html

把程序的完整源代码给大家.然后大家只要看代码中的注释应该就能理解的啦.如果还不理解的话,那么就看我的解释,文字可能欠准确和流畅,请包涵.


<html>
<head>
<script>
//打开就播放
function loadPlay()
{
try{
setColor(0);
document.WMP.URL=MusicList.options[0].value; //指定(播放)列表中的第一首歌曲
document.WMP.controls.play(); //播放
}catch(e){}

//try{}catch(e){}表示忽略程序运行中出现的错误
}

//以下函数获取当前播放歌曲在列表中的索引
function getMusicIndex()
{
try{
var MusicIndex=0; //存储当前播放歌曲的位置
/*
遍历整个播放列表.
获取当前播放歌曲在列表中的下标位置
用document.WMP.URL来和列表项的值比较
*/
for(i=0;i<MusicList.length;i++)
{
if(document.WMP.URL==document.all.MusicList.options[i].value)
{
MusicIndex=i; //记录下当前播放歌曲的位置
break;
}
}
return MusicIndex; //整个函数返回当前播放歌曲的下标位置
}catch(e){}
setTimeout('getMusicIndex()',1000); //每隔1秒就检测一下当前播放歌曲的位置
}
getMusicIndex(); //调用getMusicIndex()函数

//设置当前播放与不播放的歌曲的颜色
function setColor(me)
{
for(i=0;i<MusicList.length;i++)
{
MusicList.options[i].style.color="purple";
if(i==me)
{
MusicList.options[i].style.color="green";
continue;
}
}
}
//播放上一曲
function playPrevious()
{
try{
var PlayIndex=getMusicIndex(); //将当前播放歌曲的位置存储到PlayIndex变量中
PlayIndex--; //当前播放歌曲的位置-1就表示起上一曲的位置
setColor(PlayIndex);
document.WMP.URL=MusicList.options[PlayIndex].value;
document.WMP.controls.play();
}catch(e){}
}
//播放下一曲
function playNext()
{
try{
var PlayIndex=getMusicIndex(); //将当前播放歌曲的位置存储到PlayIndex变量中
PlayIndex++; //当前播放歌曲的位置+1就表示起下一曲的位置
setColor(PlayIndex);
document.WMP.URL=MusicList.options[PlayIndex].value;
document.WMP.controls.play();
}catch(e){}
}
//控制播放,暂停,停止
function control(me)
{
switch (me)
{
case 1 : //暂停
document.WMP.controls.pause();
break;
case 2 : //播放
document.WMP.controls.play();
break;
case 0 : //停止
document.WMP.controls.stop();
break;
}
}
</script>
</head>
<body onload="loadPlay()">
<object id="WMP" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" width="232" height="200" loop=-1>
<param name="URL">
<param name="uiMode" value="none"><!-- none,mini,full -->
<param name="enableContextMenu" value="false">
</object>
<br>
<button onclick="control(2)">播放</button>
<button onclick="control(1)">暂停</button>
<button onclick="control(0)">停止</button>
<button onclick="playPrevious()">上一曲</button>
<button onclick="playNext()">下一曲</button>
<br>
<select id="MusicList" multiple>
<option value="http://down.5458.net/yenja/zy/jwys.mp3">水木年华--借我一生
<option value="http://media3.91vc.com/vc0912/space/2007/05/16/cyzhuiyue/1560247_20070517004036.mp3">水木年华--少年往事
<option value="http://www.m8cool.com/UserFiles/BbsAttachments/2007072219356718750-29B4.mp3">水木年华--别哭,我最爱的人
</select>
<p>
</body>
</html>





程序代码详细分析:

本程序中共有6个函数.接下来我试着向大家一个个的分析这些函数.
1.loadPlay()函数分析:
我们先看看第1个函数loadPlay(),这个函数表示,一打开网页就播放插件就播放列表中的第一首歌曲.我们可以可以看到函数内部有这样的语句try{}catch(e){},这语句是Javascript中捕获错误的语句,这里用这个语句的原因是,如果函数内部用错误,那么就忽略其运行错误.我们再来看这一句setColor(0);这表示调用另外一个函数,后面我们会详解这个函数.再看看document.WMP.URL=MusicList.options[0].value;这个语句表示将列表中的第1项的值赋予给播放插件的URL属性用作播放插件的播放文件地址,因为列表中各项的值都是一些歌曲的文件地址.接着,我们看到document.WMP.controls.play();这语句进行播放操作,因为在上一个语句中我们已经给播放插件指定播放文件的地址了,所以我们就要用到播放插件的集合属性controls的play()方法来进行播放歌曲.
2. getMusicIndex()函数分析:
这个函数表示, 获取当前播放歌曲在列表中的索引.本程序获取播放歌曲索引的目的就是用来进行播放上一曲和下一曲的操作.我们首先声音一个变量MusicIndex,这个变量属于局部变量,用来存储当前播放歌曲的位置(列表中的项目下标索引).当然我们可以声音一个全局变量来存储,但如果能用局部变量解决问题的话,尽量不要使用全局变量,这是一个好的建议(我在某些地方看到的,嘿嘿).为了取得当前播放歌曲在列表中的下标位置,我们需要遍历整个播放列表,然后用播放插件的URL属性和列表中各项的值(value属性值)作比较,如果两个一致的话,那么就提取出该项在播放列表中的下标位置,这样我们就要用到for(i=0;i<MusicList.length;i++){…}循环来遍历啦,在这个for循环的内部,我们用了if语句来判断是否符合要求,如果符合了就将当前播放歌曲的位置存储到MusicIndex变量中,然后就退出for循环.接下来,我们可以看到return MusicIndex;这个语句表明getMusicIndex()函数返回一个值,这个值就是MusicIndex局部变量的值.
3. setColor(me)函数分析:
这个函数表示,设置当前播放与不播放的歌曲的颜色,这样就能够很清楚的知道正在播放那一首歌曲啦.这函数有一个参数me,这个参数是跟当前播放歌曲的下标有关的.我们首先用一个for循环来遍历整个播放列表,在for循环的内部可以看到这样的一个语句: MusicList.options[i].style.color="purple";,这表示将列表中的各项的文字颜色设置成紫色.接下来就用一个if语句块啦,我们开看看if块中的条件语句i==me,这表示,如果某个列表中的项的下标位置和函数的参数me一致的话,那么就将该项的文本颜色设置成绿色(执行MusicList.options[i].style.color="green";)并且开始进入下半轮的循环(执行continue;并不是重新开始循环!)continue语句就在循环中的作用就好像你在路上走路时遇到的一个石头,当遇到这个石头的时候,你就跨过它,继续往下走 (这是我个人的愚蠢的理解,专供像我们这些IQ的人用来记忆理解的,大家也可以不用这么理解,嘿嘿).
4. playPrevious()函数分析:
这个函数表示,用来播放上一首歌曲.我们先看var PlayIndex=getMusicIndex();这表示将getMusicIndex()函数的返回值(当前播放的歌曲的位置)赋值给PlayIndex变量.再看看PlayIndex--;这语句表示PlayIndex的变量值减去1,这样一来, PlayIndex的值就是当前播放歌曲的上一首歌曲的下标位置了,接下来再看, setColor(PlayIndex);这表示调用setColor(me)函数来设置指定项的文本颜色,不要忘了PlayIndex作为setColor(me)函数的实际参数.下面两句不用再解释了吧,如果还不十分理解的话,请参考前面的解释.
5. playNext()函数分析:
请参考playPrevious()函数分析,两者的主要也是唯一的差别就是加减号的使用.
6. control(me)函数分析:
这个函数表示,用来进行播放插件的控制操作,如播放,暂停,停止.我们可以看到该函数内部只有switch结构块, switch结构块的条件表达式是采用该函数的形式参数me.接下来,我们来看case 1 ,这表示,如果如果me和1匹配的话,那么就暂停播放(执行document.WMP.controls.pause();语句),break;表示退出switch结构块.依此类推,下面的不用解释了吧!
我们在来看看HTML代码中的一句:
<object id="WMP" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" width="232" height="200" loop=-1>,大家注意<object>标记的classid属性值了! clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6表示在网页中加载Windows Media Player插件,这是至关重要的!



好啦,解释完毕啦,大家可以放松心情啦,改天记得要写一个很棒的播放程序出来哦.

分享到:
评论

相关推荐

    JAVASCRIPT 之 简易网页音乐播放程序

    ### JAVASCRIPT 之 简易网页音乐播放程序 #### 一、概述 本文档将详细介绍如何使用JavaScript创建一个简易的网页音乐播放器。该播放器虽然功能较为简单,且界面设计朴素,但足以作为初学者入门的示例项目。通过本...

    网页播放器

    在“简易网页音乐播放程序”这个项目中,可能包含了实现上述功能的源代码,包括HTML结构、CSS样式以及JavaScript逻辑。分析和学习这个项目的源码可以帮助理解网页播放器的工作原理和实现方法。 总结来说,网页...

    简易音乐音乐_微信小程序模板js代码前台前端H5页面源码.rar

    开发者可以利用这些代码快速构建一个音乐播放应用,适用于微信小程序环境,同时也提供了H5版本,方便在网页上运行。这个项目基于JavaScript(JS)编写,是学习和实践微信小程序开发的优秀实例。 【标签】 1. 微信小...

    简易音乐音乐_微信小程序模板js代码前台前端H5页面源码+后台源码.rar

    该压缩包文件“简易音乐音乐_微信小程序模板js代码前台前端H5页面源码+后台源码.rar”包含了创建一个微信小程序的完整源代码,主要适用于音乐类应用。这个小程序的开发涉及到多个方面,包括前端界面设计、后端数据...

    MFC简易音乐播放器源码

    【MFC简易音乐播放器源码】是一款基于Microsoft Foundation Class (MFC) 库开发的简单音乐播放软件,它利用MCI( Multimedia Control Interface)接口来实现音乐的播放、暂停、停止以及音量控制等功能。MFC是微软...

    简易的在线music程序(PHP)

    这是一个基于PHP实现的简易在线音乐播放程序,它具备自动采集网络音乐资源的功能,适用于那些希望在网站上添加音乐播放模块的用户。这个程序的特点在于其简单易用,并且不需要依赖数据库来存储数据,降低了系统复杂...

    简易在线个人音乐网站

    【简易在线个人音乐网站】是一个基于Asp.net技术构建的音乐分享平台,它结合了现代Web技术如HTML5、CSS3和jQuery,旨在为用户提供一个简单而互动的音乐体验。这个项目展示了如何将前端设计与后端数据处理相结合,...

    简易音乐网站(.net/C#)

    【简易音乐网站(.net/C#)】是一个利用微软的.NET框架和C#编程语言构建的在线音乐平台项目。这个项目旨在提供一个简洁易用的界面,让用户能够浏览、搜索和播放各种音乐。通过.NET技术栈,开发者可以利用其强大的...

    一个简易的网络flash音乐播放器

    我们可以推测这个简易Flash音乐播放器可能的工作流程:用户通过浏览器加载MyPlayer.swf文件,播放器界面显示在网页上,用户可以选择搜索或浏览音乐库,点击歌曲后,播放器通过网络请求音乐数据,然后解码并播放选定...

    musicPlayer简易音乐播放器

    【musicPlayer简易音乐播放器】是一个适合初学者的练习项目,它主要运用了JavaScript、HTML和CSS这三种前端核心技术来实现基本的音乐播放功能。这个项目的特点在于它的代码结构简单,易于理解,对于想要入门Web开发...

    html5简易钢琴演奏程序,25音阶

    HTML5简易钢琴演奏程序是一种基于Web技术实现的音乐创作工具,它允许用户通过网页界面模拟弹奏钢琴。这个程序利用了HTML5的一些核心特性,尤其是音频处理和交互性设计,为用户提供了25个音阶的演奏体验。下面将详细...

    小程序 烟花

    【小程序 烟花】是基于微信小程序平台开发的一款应用,它主要的功能是展示精美的烟花动画,并且配备背景音乐,适用于庆祝生日或其他喜庆场合。这款小程序利用了微信小程序的强大功能,为用户提供了便捷、互动且富有...

    简易的php音乐播放器源码

    【简易的PHP音乐播放器源码】是一种基于PHP编程语言实现的简单音乐播放器系统,主要适用于学习和研究。PHP是一种广泛使用的服务器端脚本语言,尤其在网页开发领域,它能够处理动态内容,实现与数据库的交互以及提供...

    中性音乐播放器UI特效

    在这个项目中,JavaScript将用于处理音乐播放的各种逻辑,例如播放、暂停、调整音量和改变播放进度。 现在,让我们详细讨论音乐播放器的关键组件: 1. **播放/暂停按钮**:通常,这是一个SVG图标,通过JavaScript...

    Qt 项目 简易版桌面萌宠

    【Qt项目简易版桌面萌宠】是一个利用Qt6框架和Visual Studio 2019集成开发环境构建的应用程序,旨在为用户提供一个具有娱乐性的桌面宠物。这个萌宠应用集成了背景音乐播放功能,允许用户根据个人喜好更换壁纸,并且...

    情缘天空音乐站简易自动更新版 -ASP源码.zip

    在“情缘天空音乐站简易自动更新版 - ASP源码.zip”这个压缩包中,我们可以看到这是一份基于ASP技术构建的音乐站点源代码。ASP允许开发者在HTML页面中嵌入脚本语言,通过服务器端处理数据,然后返回给客户端浏览器,...

    基于HTML5的Web Audio技术实现手机版简易钢琴.pdf

    HTML5的Web Audio技术是近年来发展起来的一种音频处理技术,允许开发者在网页中创建复杂的音频应用程序。该技术的出现,解决了传统音频处理方法的不足,提供了更加灵活和高效的音频处理方式。 在本文中,我们将讨论...

Global site tag (gtag.js) - Google Analytics