您当前的位置: 首页 > 网站编程 > ASP教程 > 用ASP构建音乐服务器的方法

用ASP构建音乐服务器的方法

作者:guanchaofeng 来源:本站整理 发布时间: 2009-06-10 22:16 点击:
----音乐服务器(MusicServer)是指一个提供音乐在线服务的服务器,它包括高端提供门户服务的网站、Web数据库和低端的操作平台、硬件设施。目前,在Internet和Intranet上有不少这样的站点,特别是在一些高速宽带的局域网中(如校园网),音乐服务器给上网的

用ASP构建音乐服务器的方法

  ----音乐服务器(MusicServer)是指一个提供音乐在线服务的服务器,它包括高端提供门户服务的网站、Web数据库和低端的操作平台、硬件设施。目前,在Internet和Intranet上有不少这样的站点,特别是在一些高速宽带的局域网中(如校园网),音乐服务器给上网的朋友提供了休闲娱乐的好去处,同时也给网站带来了较高的访问率。
  
  ----像其他站点一样,音乐服务器包括网站和硬件两个部分。硬件性能和服务器效率是成正比的,因而如何构建网站才是一个音乐服务器的关键。从目前来看,网站基本有两种类型:一种是运行在Unix/Linux环境下,采用Perl/C/Php/Java等作CGI编程语言;一种是运行在WinNTServer平台上,采用ASP/WinCGI作后台语言。前者运行效率高,但结构复杂,比较适合大型站点;后者编程难度相对较低,而且采用ODBC驱动接口,数据库连接方便,特别适合作音乐服务器。
  
  ----一个基本的音乐服务器包括音乐在线欣赏、音乐排行榜、音乐主题检索和音乐下载等四个部分。下面将主要从技术角度来讨论如何实现以上功能。
  
  音乐主题数据库的规划
  
  ----音乐主题数据库是Web站点存储所需音乐资料的仓库,它的规划在很大程度上影响了整个网站的结构和效率。数据库中可以单独建成一张表单,也可以以主键和外键的形式建成多张表单。本例中为说明上的便利,建成如下单表框架:(music.mdb)
  
  音乐在线欣赏
  
  ----在线欣赏是指客户端利用播放器播放服务器端的音乐文件。其原理是当客户端向服务器提交音乐选单后,服务器生成相应的.m3u文件,并将该文件通过Http协议下行至客户端;客户端将被激发调用相应的播放器执行该文件,从而实现了音乐在线欣赏功能。目前支持.m3u文件的播放器有Winamp、RealplayerG2、Musicmatch等。当这些播放器软件被正确安装在客户端时,就可以自动播放.m3u文件。所以解决问题的关键在于后台如何生成.m3u文件并下行到客户端。以下利用ASP中内置的FileSystem组件给出一种解决方案,并给出相应程序。
  
  <%
  
  dimchoose,path,mydb,myset,SQL,fs,mp3
  
  ‘#####获得list.htm表单中选中的歌曲项
  
  对应的id号,并赋给字串变量choose#####
  
  choose=“("
  
  fori=3torequest.form.count
  
  choose=choose+request.form(i)+“,"
  
  next
  
  choose=left(choose,len(choose)-1)+“)"
  
  ‘#####判断choose变量,如果不包含任何id号,
  
  说明list.htm中没有选中任何歌曲,终止程序#####
  
  ifchoose=“()"then
  
  response.redirect(“list.htm")
  
  response.end
  
  endif
  
  ‘#####设置文件路径,需要把temp目录的权限设为
  
  对internet匿名用户具有read&write权限#####
  
  path=“E:\inetpub\wwwroot\temp\"
  
  ‘#####创建文件对象#####
  
  Setfs=CreateObject(“Scripting.FileSystemObject")
  
  Setmp3=fs.CreateTextFile(path+“listen.m3u",True)
  
  ‘#####创建数据库对象#####
  
  setmydb=server.createobject(“adodb.connection")
  
  mydb.open“music"
  
  ‘#####检索数据库,获得歌曲信息#####
  
  SQL=“selectmp3name,urlfrom"&dbname&
  
  “whereidin"&choose
  
  setmyset=tdb.execute(SQL)
  
  dowhilenotmyset.eof
  
  ‘#####生成点播歌曲文件列表#####
  
  mp3.Write(“http://"+myset(“url")+chr(10))
  
  myset.movenext
  
  loop
  
  ‘#####更新数据库中的当天点播次数和
  
  总共点播次数#####
  
  SQL=“updatemusicsetclick=click+1,
  
  this=this+1whereidin"&choose
  
  mydb.execute(SQL)
  
  ‘#####取消对象#####
  
  setmyset=nothing
  
  mydb.close
  
  setmydb=nothing
  
  mp3.close
  
  setmp3=nothing
  
  ‘#####将该文件下载给用户#####
  
  response.redirect(“listen.m3u")
  
  response.end
  
  %>
  
  ----注意:利用这种方法时,要控制.m3u文件Http头的内容。在Winnt中可利用IIS设置.m3u文件类型的Mine内容。具体操作如下:启动IIS—>选中音乐服务器所在的Web站点—>点击“属性”按钮—>在出现的属性选项卡中点击“Http标题”卡—>点击“文件类型”按钮—>点击“新增类型”按钮—>在“相应的扩展名”中填入“.m3u”,在“内容类型”中填入“audio/mpegurl”—>然后一路确定即可。
  
  音乐排行榜
  
  ----音乐排行榜是音乐服务器不可缺少的一项内容,其重要性不亚于一个站点的Pageview。它可以向歌迷即时提供信息、引导欣赏、动态地反映潮流趋势。在众多的音乐服务器中,排行榜也是竟相推陈出新的地方,具有很高的点击率。一般说来,排行榜包括总共点播次数、当天点播次数、总共下载次数等内容。具体的实现方法比较简单。在单表中可以利用如下SQL语句:select*frommusicorderbytotal_click。若是多表,则可以利用带join子句的联合查询SQL语句。如果要限定查询记录数,可采用count()集合函数。如在本例中,如果要查询当天点播次数前20名的歌曲,可采用如下语句:selecttop20*frommusicorderbytotal_clickdesc。排行榜的功能主要取决于主题数据库的规划如何,你可以根据需要增删字段,以实现相应功能(如增加进榜时间、歌手资料、名次变化等等),所涉及的SQL语句也不会过于复杂。总之,排行榜是体现一个音乐网站特色所在,可以自由发挥。
  
  音乐主题检索
  
  ----提到检索,很多人立刻联想到Yahoo、Soho等著名站点,并且颇有神秘之感。其实,搜索引擎在数据库中并非难事,因为数据库内置的数据引擎已经提供了很好的基础。搜索效率的高低取决于数据库的性能和SQL语句的效率。在前台,可以提供一系列的检索项目和条件选项。在后台,则根据前台提交的表单,生成相应的查询语句在数据库中执行,并将查询结果返回。比如在前台提交的表单为:检索项目=“歌手姓名”,内容=“张学友”,匹配条件=“全字匹配”,则后台生成的SQL语句为:select*frommusicwheresinger=‘张学友'orderbyedition,idasc,这样就可以检索出张学友的所有歌曲信息,并按专集分类返回。又如前台要查询的歌手姓名为“齐秦”,且歌曲名称带有“雨”字的所有歌曲(即要求模糊匹配),则后台生成的SQL语句为:select*frommusicwheresinger=‘齐秦'andmp3namelike‘%雨%'orderbyidasc,将返回“冬雨”、“太阳雨”、“无情的雨无情的你”等等。只要运用适当的技巧和灵活的SQL语句,就可以让你的主题检索发挥得淋漓尽致。
  
  音乐下载功能
  
  ----提供音乐下载功能,同样是音乐服务器的一个基本功能,特别是对远程用户,将喜爱的歌曲下载后才能欣赏。一般有两种方式提供下载,一种是直接通过Http和浏览器下载,另一种是将曲库开辟为Ftp目录,通过ftp协议下载。本例中采用前一种方式,并且在数据库中对下载次数进行跟踪记录。有些站点还根据需要对歌曲进行压缩加密,将密码提供给正式用户,也是一条可取之道。本例中程序如下:
  
  <%
  
  ‘#####获得歌曲标志号id#####
  
  id=request(“id")
  
  settdb=server.createobject(“adodb.connection")
  
  tdb.open“music"
  
  SQL=“selectmp3urlfrommusicwhereid="&id
  
  settset=tdb.execute(SQL)
  
  iftset.eofthen
  
  response.end
  
  else
  
  ‘#####更新数据库中歌曲的下载次数#####
  
  SQL=“updatemusicsettotal_down=total_down
  
  +1whereid="&id
  
  tdb.execute(SQL)
  
  downfile=tset(“url")
  
  tdb.close
  
  settset=nothing
  
  settdb=nothing
  
  endif
  
  ifdownfile=“"orisnull(downfile)thenresponse.end
  
  downfile=“http://"+downfile
  
  ‘#####下载相应歌曲#####
  
  response.redirect(downfile)
  
  response.end
  
  %>
  
  ----以上步骤就构建了一个基本的音乐服务器。当然,一个完整的音乐服务器还可以包括歌手信息、歌迷论坛、聊天室、投票站、娱乐新闻网等等功能,都可以用ASP一一实现。本文限于篇幅,不再详细讨论。只要前台页面采用独特的风格设计和完善的JavaScript程序控制,后台编程运用灵活的SQL语句和强大的ASP组件,加之规划周到的Web数据库和丰富的创意,就能构建一个完美的音乐服务器。有兴趣的朋友不妨试试看,你会创造一个奇迹的!

分享到:
本文"用ASP构建音乐服务器的方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4