您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 安卓开发 >> 正文

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

作者:佚名    责任编辑:admin    更新时间:2022-06-22

下面我们给大家介绍一下用ASP构建音乐服务器吧!希望大家可以在这里学习!

音乐主题数据库的规划

----音乐主题数据库是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:\inetpub\wwwroot\temp\"

‘##### 创建文件对象 #####

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

%>

----注意:利用这种方法时,要控制.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协议下载。本例中采用前一种方式,并且在数据库中对下载次数进行跟踪记录。有些站点还根据需要对歌曲进行压缩加密,将密码提供给正式用В彩且惶蹩扇≈馈1纠谐绦蛉缦拢?

<%

‘##### 获得歌曲标志号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

%>

以上是由编辑老师为大家整理的用ASP构建音乐服务器,如果您觉得有用,请继续关注精品。

相关推荐:

用ASP实现网上五子棋大赛的方法