国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

用ASP構建音樂服務器的方法

2024-05-04 11:07:07
字體:
來源:轉載
供稿:網友

音樂服務器(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:/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協議下載。本例中采用前一種方式,并且在數據庫中對下載次數進行跟蹤記錄。有些站點還根據需要對歌曲進行壓縮加密,將密碼提供給正式用戶,也是一條可取之道。本例中程序如下:
  <%
  ‘##### 獲得歌曲標志號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一一實現。本文限于篇幅,不再詳細討論。只要前臺頁面采用獨特的風格設計和完善的JavaScript程序控制,后臺編程運用靈活的SQL語句和強大的ASP組件,加之規劃周到的Web數據庫和豐富的創意,就能構建一個完美的音樂服務器。有興趣的朋友不妨試試看,你會創造一個奇跡的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宽甸| 宜良县| 洪洞县| 潮州市| 云浮市| 常州市| 峨山| 即墨市| 赞皇县| 浦城县| 汉阴县| 濮阳县| 蒙自县| 夏河县| 拜城县| 定结县| 新巴尔虎右旗| 南京市| 依安县| 中牟县| 铜山县| 墨玉县| 四子王旗| 新绛县| 兴义市| 额尔古纳市| 北票市| 固镇县| 全州县| 新营市| 滨海县| 桦甸市| 盐山县| 宜章县| 正安县| 平江县| 天长市| 涟源市| 台南县| 呼和浩特市| 蓝山县|