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

福库时代

福库时代

2016-02-19 14:02

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享4.10 用ASP构建音乐服务器的方法吧。

音乐服务器(Music Server)是指一个提供音乐在线服务的服务器,它包括高端提供门户服务的网站、Web数据库和低端的操作平台、硬件设施。目前,在Internet和Intranet上有不少这样的站点,特别是在一些高速宽带的局域网中(如校园网),音乐服务器给上网的朋友提供了休闲娱乐的好去处,同时也给网站带来了较高的访问率。
 

----像其他站点一样,音乐服务器包括网站和硬件两个部分。硬件性能和服务器效率是成正比的,因而如何构建网站才是一个音乐服务器的关键。从目前来看,网站基本有两种类型:一种是运行在Unix / Linux环境下,采用Perl / C / Php / Java 等作CGI编程语言;一种是运行在Win NT Server 平台上,采用ASP / WinCGI 作后台语言。前者运行效率高,但结构复杂,比较适合大型站点;后者编程难度相对较低,而且采用ODBC驱动接口,数据库连接方便,特别适合作音乐服务器。

----一个基本的音乐服务器包括音乐在线欣赏、音乐排行榜、音乐主题检索和音乐下载等四个部分。下面将主要从技术角度来讨论如何实现以上功能。

音乐主题数据库的规划
----音乐主题数据库是Web站点存储所需音乐资料的仓库,它的规划在很大程度上影响了整个网站的结构和效率。数据库中可以单独建成一张表单,也可以以主键和外键的形式建成多张表单。本例中为说明上的便利,建成如下单表框架: (music.mdb)


音乐在线欣赏
----在线欣赏是指客户端利用播放器播放服务器端的音乐文件。其原理是当客户端向服务器提交音乐选单后,服务器生成相应的.m3u文件,并将该文件通过Http协议下行至客户端;客户端将被激发调用相应的播放器执行该文件,从而实现了音乐在线欣赏功能。目前支持.m3u文件的播放器有Winamp、Realplayer G2、 Musicmatch等。当这些播放器软件被正确安装在客户端时,就可以自动播放.m3u文件。所以解决问题的关键在于后台如何生成.m3u文件并下行到客户端。以下利用ASP中内置的FileSystem组件给出一种解决方案,并给出相应程序。
<%
dim choose,path,mydb,myset,SQL,fs,mp3
‘##### 获得list.htm表单中选中的歌曲项
对应的id号,并赋给字串变量choose #####
choose=("
for i=3 to request.form.count
choose=choose+request.form(i)+,"
next
choose=left(choose,len(choose)-1)+)"
‘##### 判断choose变量,如果不包含任何id号,
说明list.htm中没有选中任何歌曲,终止程序#####
if choose=()" then
response.redirect(list.htm")
response.end
end if
‘#####设置文件路径,需要把temp目录的权限设为
对internet匿名用户具有read & write 权限 #####
path=E:inetpubwwwroottemp"
‘##### 创建文件对象 #####
Set fs = CreateObject(Scripting.FileSystemObject")
Set mp3 = fs.CreateTextFile(path+listen.m3u", True)
‘##### 创建数据库对象#####
set mydb=server.createobject(adodb.connection")
mydb.open music"
‘##### 检索数据库,获得歌曲信息 #####
SQL=select mp3name,url from "&dbname&
where id in "&choose
set myset=tdb.execute(SQL)
do while not myset.eof
‘##### 生成点播歌曲文件列表 #####
mp3.Write(http://"+myset(url")+chr(10))
myset.movenext
loop
‘##### 更新数据库中的当天点播次数和
总共点播次数 #####
SQL=update music set click=click+1,
this=this+1 where id in "&choose
mydb.execute(SQL)
‘##### 取消对象 #####
set myset=nothing
mydb.close
set mydb=nothing
mp3.close
set mp3=nothing
‘##### 将该文件下载给用户#####
response.redirect(listen.m3u")
response.end
%>

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

----注意:利用这种方法时,要控制.m3u文件Http头的内容。在Winnt中可利用IIS设置.m3u文件类型的Mine内容。具体操作如下:启动IIS > 选中音乐服务器所在的Web站点 > 点击

属性 按钮 > 在出现的属性选项卡中点击Http标题卡 > 点击文件类型按钮 > 点击新增类型按钮 > 在相应的扩展名中填入.m3u,在内容类型中填入audio/mpegurl > 然后一路确定即可。

音乐排行榜
----音乐排行榜是音乐服务器不可缺少的一项内容,其重要性不亚于一个站点的Pageview。它可以向歌迷即时提供信息、引导欣赏、动态地反映潮流趋势。

在众多的音乐服务器中,排行榜也是竟相推陈出新的地方,具有很高的点击率。一般说来,排行榜包括总共点播次数、当天点播次数、总共下载次数等内容。具体的实现方法比较简单。在单表中可以利用如下SQL语句:select * from music order by total_click 。若是多表,则可以利用带join子句的联合查询SQL语句。如果要限定查询记录数,可采用count()集合函数。如在本例中,如果要查询当天点播次数前20名的歌曲,可采用如下语句:select top 20 * from music order by total_click desc 。排行榜的功能主要取决于主题数据库的规划如何,你可以根据需要增删字段,以实现相应功能(如增加进榜时间、歌手资料、名次变化等等),所涉及的SQL语句也不会过于复杂。总之,排行榜是体现一个音乐网站特色所在,可以自由发挥。
音乐主题检索
----提到检索,很多人立刻联想到Yahoo、Soho等着名站点,并且颇有神秘之感。其实,搜索引擎在数据库中并非难事,因为数据库内置的数据引擎已经提供了很好的基础。搜索效率的高低取决于数据库的性能和SQL语句的效率。在前台,可以提供一系列的检索项目和条件选项。在后台,则根据前台提交的表单,生成相应的查询语句在数据库中执行,并将查询结果返回。比如在前台提交的表单为:检索项目=歌手姓名,内容=张学友,匹配条件=全字匹配,则后台生成的SQL 语句为:select * from music where singer=‘张学友' order by edition,id asc,这样就可以检索出张学友的所有歌曲信息,并按专集分类返回。又如前台要查询的歌手姓名为齐秦,且歌曲名称带有雨字的所有歌曲(即要求模糊匹配),则后台生成的SQL语句为: select * from music where singer =‘齐秦' and mp3name like ‘%雨%' order by id asc ,将返回冬雨、太阳雨、无情的雨无情的你等等。只要运用适当的技巧和灵活的 SQL语句,就可以让你的主题检索发挥得淋漓尽致。
音乐下载功能 ----提供音乐下载功能,同样是音乐服务器的一个基本功能,特别是对远程用户,将喜爱的歌曲下载后才能欣赏

一般有两种方式提供下载,一种是直接通过Http和浏览器下载,另一种是将曲库开辟为Ftp目录,通过ftp协议下载。本例中采用前一种方式,并且在数据库中对下载次数进行跟踪记录。有些站点还根据需要对歌曲进行压缩加密,将密码提供给正式用户,也是一条可取之道。本例中程序如下:
<%
‘##### 获得歌曲标志号id #####
id=request(id")
set tdb=server.createobject(adodb.connection")
tdb.open music"
SQL=select mp3url from music where id ="&id
set tset=tdb.execute(SQL)
if tset.eof then
response.end
else
‘##### 更新数据库中歌曲的下载次数 #####
SQL=update music set total_down=total_down
+1 where id ="&id
tdb.execute(SQL)
downfile=tset(url")
tdb.close
set tset=nothing
set tdb=nothing
end if
if downfile=" or isnull(downfile) then response.end
downfile=http://"+downfile
‘##### 下载相应歌曲 #####
response.redirect(downfile)
response.end
%>

 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

----以上步骤就构建了一个基本的音乐服务器。当然,一个完整的音乐服务器还可以包括歌手信息、歌迷论坛、聊天室、投票站、娱乐新闻网等等功能,都可以用ASP一一实现。本文限于篇幅,不再详细讨论。只要前台页面采用独特的风格设计和完善的JavaScript程序控制,后台编程运用灵活的SQL语句和强大的ASP组件,加之规划周到的Web数据库和丰富的创意,就能构建一个完美的音乐服务器。有兴趣的朋友不妨试试看,你会创造一个奇迹的!

展开更多 50%)
分享

猜你喜欢

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

Web开发
4.10 用ASP构建音乐服务器的方法

用ASP构建音乐服务器

ASP
用ASP构建音乐服务器

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

7.2 用ASP构建音乐服务器

Web开发
7.2 用ASP构建音乐服务器

使用ASP重启服务器

ASP
使用ASP重启服务器

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ASP服务器组件的编程

ASP
ASP服务器组件的编程

ASP服务器组件编程心得

ASP
ASP服务器组件编程心得

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

分屏演示PPT你可同时看见幻灯片备注信息

分屏演示PPT你可同时看见幻灯片备注信息

5.4 用数据绑定实现高效率动态网页

5.4 用数据绑定实现高效率动态网页
下拉加载更多内容 ↓