点歌送祝福,请在线点歌插件帮忙

技术与开发

我生日的时候,网友在社区给我点歌送祝福,感动之余,我也想在自己的网站设计一个相同的功能,方便访客们相互送祝福。

27-f12-1-1.jpg

要在网站上实现在线点歌送祝福的功能,可以设计一个在线点歌插件(下载地址:http://www.shudoo.com/bzsoft)。要实现这个功能,先要在网页插入调用客户端播放器的代码,然后制作一个点歌页面,让网友们能自由地提交自己的祝福语和歌曲,接着将指定的歌曲文件路径(可以是网络路径)传送给播放器,告诉播放器将要播放的歌曲即可。利用相同的原理,我们还可以制作在线电影点播插件等。

第一步 在网页上插入播放器调用代码

新建一个网页,在网页的<body></body>之间添加一段播放器调用代码(我们创建的只是调用客户端播放器的代码,如果客户端没有安装相应的播放器,便没法调用。本例中调用的是系统自带的Windows Media Player),其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

<param name="autoStart" value="true" />

<param name="balance" value="0" />

<param name="currentPosition" value="0" />

<param name="currentMarker" value="0" />

<param name="enableContextMenu" value="false" />

<param name="enableErrorDialogs" value="false" />

<param name="enabled" value="true" />

<param name="fullScreen" value="false" />

<param name="invokeURLs" value="false" />

第二步 制作点歌页面

播放器有了,但是没有歌曲是不能播放的,现在我们就来制作网友点歌页面。必要的点歌信息为歌曲文件路径、点歌人、为谁点歌和祝福语,所以在网友录入歌曲信息的时候,我们必须将这些信息设置为必填项,视情况而定,还可以增加其他录入信息。

在数据库中新建一个数据表,用来存放歌曲的相关信息。接着再新建一个网页作为网友录入信息的页面,在网页的<body></body>之间录入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

from_name=CzCharThis(request.Form("username"))//获取录入者的名字

to_name=CzCharThis(request.Form("toname"))//获取为谁祝福的名字

song_name=CzCharThis(request.Form("songname"))//获取歌曲名

song_url=CzCharThis(request.Form("songurl"))//获取歌曲路径

czplayer_msg=CzCharThis(request.Form("content"))//获取祝福内容

ip=Request.ServerVariables("REMOTE_ADDR")//获取IP地址

conn.execute ("insert into cz_songlist (cz_from_name,cz_to_name,cz_song_name,cz_song_url,cz_player_msg,cz_ip) values ('"&from_name&"','"&to_name&"','"&song_name&"','"&song_url&"','"&czplayer_msg&"','"&ip&"')")//将获取的相关信息插入数据库

第三步 将歌曲加入播放列表中

当网友点歌后,通过索引值查询相关数组,播放器便能获取到歌曲的所有相关信息并进行播放了。在播放器代码所在页面新建一个Div层,并输入相关播放列表代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

rs.open "select * from cz_songlist order by cz_id desc",conn,1,1 '从数据库中读取网友录入的歌曲信息

if not rs.eof then

while not rs.eof

response.Write("mkList("""&rs("cz_song_url")&""" ,"""&rs("cz_from_name")&"-"&rs("cz_song_name")&""");")&vbcrlf '将取得的歌曲信息存入数组

rs.movenext

wend

Else

if(objMmInfo == null){ objMmInfo=new Array(); idx=0;}//如果数组为空则创建数组

else{ idx=objMmInfo.length;//取得要加入的歌曲在数组中的索引值}

if(u=="" || u==null){cu="mms://";}

第四步 连续播放歌曲

当某首歌播放结束后,就要读取下一首歌曲的信息并进行播放,大家可能会有一个疑问,怎么判断一首歌播放结束呢?我们可以利用Windows Media Player的playStateChange来解决这个事情。在调用播放器的页面中的之间输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

function evtPSChg(f){

switch(f){

case 1://所有歌曲播放停止

evtStop();

break;

case 2://播放暂停

evtPause();

break;

case 3://播放中

编后

Windows Media Player播放器提供的接口程序是十分丰富的,读者可以详细查询它的接口作用和调用方法,把点歌插件做得更强大,更易用;此外,我们还可以为点歌台做一个管理后台来管理网友们的点歌记录,以防止播放的歌曲或留言中含有非法内容。