ミュージック サーバーは、オンライン音楽サービスを提供するサーバーを指します。これには、ポータル サービス、Web データベース、およびローエンドのオペレーティング プラットフォームとハードウェア機能を提供するハイエンド Web サイトが含まれます。現在、インターネットやイントラネット、特に一部の高速ブロードバンド LAN (キャンパス ネットワークなど) には、このようなサイトが多数あり、音楽サーバーはインターネット上の友人にレジャーや娯楽のための良い場所を提供すると同時に、それも提供しています。ウェブサイトのアクセス率が向上します。
----他のサイトと同様に、ミュージック サーバーには Web サイトとハードウェアの 2 つの部分が含まれています。ハードウェアの性能とサーバーの効率は正比例するため、ミュージックサーバーはWebサイトをどのように構築するかが鍵となります。現在の観点から見ると、Web サイトには基本的に 2 つのタイプがあります。1 つは CGI プログラミング言語として Perl/C/Php/Java などを使用して Unix/Linux 環境で実行され、もう 1 つは Win NT サーバー上で実行されます。プラットフォームでは、ASP を使用し、バックグラウンド言語として WinCGI が使用されます。前者は動作効率が高いものの、構造が複雑なため大規模サイトに適しており、後者はプログラミングの難易度が比較的低く、データベース接続を容易にするためにODBCドライバーインターフェイスを使用しているため、特にミュージックサーバーに適しています。
----基本的な音楽サーバーには、オンライン音楽鑑賞、音楽ランキング、音楽テーマの検索、音楽ダウンロードの 4 つの部分が含まれています。以下では、主に上記の機能を技術的な観点から実現する方法について説明します。
音楽テーマデータベースの企画
----音楽テーマデータベースは、Web サイトに必要な音楽素材を保管する倉庫であり、その計画は Web サイト全体の構造と効率に大きく影響します。データベース内に単一のフォームを作成することも、主キーと外部キーの形式で複数のフォームを作成することもできます。この例では、説明の便宜上、次の単一テーブル フレームワークが構築されます: (music.mdb)
オンラインで音楽を聴く
----オンラインリスニングとは、クライアントがプレーヤーを使用してサーバー側の音楽ファイルを再生することを意味します。原則として、クライアントが音楽メニューをサーバーに送信すると、サーバーは対応する .m3u ファイルを生成し、HTTP プロトコルを通じてそのファイルをクライアントにダウンロードし、クライアントは対応するプレーヤーを呼び出してファイルを実行します。これにより、音楽オンラインリスニング機能が実現されます。現在 .m3u ファイルをサポートしているプレーヤーには、Winamp、RealPlayer G2、Musicmatch などが含まれます。これらのプレーヤー ソフトウェアがクライアントに正しくインストールされている場合、.m3u ファイルを自動的に再生できます。したがって、問題を解決する鍵は、バックグラウンドで .m3u ファイルを生成し、クライアントにダウンロードする方法にあります。以下では、ASP の組み込み FileSystem コンポーネントを使用して、ソリューションと対応するプログラムを提供します。
<%
dim 選択、パス、mydb、myset、SQL、fs、mp3
'##### list.htm フォームで選択した曲アイテムを取得します
##### を選択すると、対応する ID 番号が文字列変数に割り当てられます。
選択=(
i=3 から request.form.count の場合
選択=選択+リクエスト.フォーム(i)+、
次
選択=左(選択,len(選択)-1)+)
'##### 選択した変数に ID 番号が含まれていない場合は、
説明: list.htm で曲が選択されていません。プログラムを終了します #####
選択 =() の場合
応答.リダイレクト(リスト.htm)
応答.終了
終了する場合
'##### ファイル パスを設定するには、一時ディレクトリのアクセス許可を次のように設定する必要があります。
インターネット匿名ユーザーに対する読み取りおよび書き込み権限を持っている #####
パス=E:/inetpub/wwwroot/temp/
'##### ファイル オブジェクトの作成 #####
Set fs = CreateObject(Scripting.FileSystemObject)
mp3 = fs.CreateTextFile(path+listen.m3u, True) を設定します。
'##### データベース オブジェクトを作成します #####
set mydb=server.createobject(adodb.connection)
mydb.オープンミュージック
'##### データベースを検索して曲情報を取得します#####
SQL=&dbname& から mp3name,url を選択
ID をどこに選択するか(&C)
set myset=tdb.execute(SQL)
myset.eof ではないときに実行します
'##### オンデマンド曲ファイル リストを生成#####
mp3.Write(http://+myset(url)+chr(10))
myset.movenext
ループ
'##### データベース内のオンデマンド ビュー数と当日のビュー数を更新します
合計ビュー数#####
SQL=音楽セットを更新 click=click+1、
this=this+1 (&choose の ID)
mydb.execute(SQL)
'##### オブジェクト ##### をキャンセルします
myset=何も設定しない
mydb.close
mydb=何も設定しない
mp3.閉じる
mp3=何も設定しない
'##### このファイルをユーザー ##### にダウンロードします
応答.リダイレクト(listen.m3u)
応答.終了
%>
----注: この方法を使用する場合は、.m3u ファイルの Http ヘッダーの内容を制御する必要があります。 Winnt では、IIS を使用して .m3u ファイル タイプの Mine コンテンツを設定できます。具体的な操作は次のとおりです。 IIS を起動します —> ミュージック サーバーが配置されている Web サイトを選択します —> [プロパティ] ボタンをクリックします —> 表示されるプロパティ タブで HTTP タイトル カードをクリックします —> ファイル タイプ ボタンをクリックします —> をクリックします[新しいタイプ] ボタン —> 対応する拡張子に .m3u を入力し、コンテンツ タイプに audio/mpegurl を入力 —> 最後まで確定します。
音楽チャート
----音楽ランキングリストはミュージックサーバーに欠かせないコンテンツであり、その重要性はサイトのページビューにも劣りません。ファンにリアルタイムの情報を提供し、鑑賞をガイドし、トレンドを動的に反映できます。
ランキングリストは数あるミュージックサーバーの中でもクリック率が高く、新しいミュージックサーバーを紹介する場でもあります。一般に、ランキング リストには、オンデマンドの合計回数、その日のオンデマンドの回数、合計ダウンロード数などが含まれます。具体的な実装方法は比較的簡単です。次の SQL ステートメントは 1 つのテーブルで使用できます: select * from music order by total_click。複数のテーブルがある場合は、結合句を含む結合クエリ SQL ステートメントを使用できます。クエリ レコードの数を制限したい場合は、count() コレクション関数を使用できます。この例では、その日に最もリクエストの多かった曲の上位 20 曲をクエリする場合、次のステートメントを使用できます: select top 20 * from music order by total_click desc。ランキングの機能は主にテーマ データベースの計画に依存し、必要に応じてフィールドを追加または削除して、対応する機能 (リストに入力する時間の追加、歌手情報、ランキングの変更など) と SQL を実行できます。関係するステートメントはそれほど複雑ではありません。つまり、音楽サイトの特性を反映したランキングとなっており、自由に利用することができます。
音楽テーマ検索
----検索というと、YahooやSohoなどの有名なサイトをすぐに思い浮かべる人も多いと思いますが、とても不思議な感じがします。実際、データベースに組み込まれたデータ エンジンがすでに優れた基盤を提供しているため、データベースに検索エンジンをインストールすることは難しくありません。検索効率は、データベースのパフォーマンスと SQL ステートメントの効率によって決まります。フロントでは一連の検索項目や条件オプションをご用意しております。バックグラウンドでは、フロント デスクから送信されたフォームに基づいて、対応するクエリ ステートメントがデータベース内で生成および実行され、クエリ結果が返されます。たとえば、フロントデスクで送信されたフォームは次のとおりです: 検索項目 = 歌手名、コンテンツ = ジャッキー・チャン、一致条件 = 単語全体一致。バックエンドで生成される SQL ステートメントは次のようになります。 select * from music where 歌手 = 'Jacky Cheung ' エディション順、ID asc 順。このようにして、Jacky Cheung のすべての曲情報をアルバム分類別に取得して返すことができます。別の例として、フロント デスクが Qi Qin という名前のすべての曲をクエリしたいと考えており、曲名に Rain という単語が含まれている場合 (つまり、あいまい一致が必要です)、その場合、バックグラウンドで生成される SQL ステートメントは次のようになります。 select * from musicここで、歌手 ='Qi Qin' と mp3name '%rain%' のように、ID asc 順に並べると、冬の雨、太陽の雨、無慈悲な雨、無慈悲なあなたなどが返されます。適切なテクニックと柔軟な SQL ステートメントを使用する限り、トピック検索を最大限に活用できます。
音楽ダウンロード機能
----ミュージックサーバーの基本機能でもある音楽ダウンロード機能を提供し、特に遠隔地のユーザー向けに、お気に入りの曲をダウンロードするだけで楽しめるようにします。
一般に、ダウンロードを提供するには 2 つの方法があります。1 つは HTTP とブラウザ経由で直接ダウンロードする方法、もう 1 つは音楽ライブラリを Ftp ディレクトリに開き、FTP プロトコル経由でダウンロードする方法です。この例では前者の方法が使用され、ダウンロード数が追跡されてデータベースに記録されます。一部のサイトでは、必要に応じて曲を圧縮および暗号化し、公式ユーザーにパスワードを提供していますが、これも良い考えです。この例の手順は次のとおりです。
<%
'##### 曲識別番号 ID を取得します #####
id=リクエスト(id)
set tdb=server.createobject(adodb.connection)
tdb.オープンミュージック
SQL=id =&id の音楽から mp3url を選択
set tset=tdb.execute(SQL)
tset.eofの場合
応答.終了
それ以外
'##### データベース内の曲のダウンロード数を更新します#####
SQL=音楽セットを更新 total_down=total_down
+1 (id =&id)
tdb.execute(SQL)
ダウンファイル=tset(url)
tdb.close
settset=何もない
settdb=何もしない
終了する場合
downfile= または isnull(downfile) の場合、response.end
ダウンファイル=http://+ダウンファイル
'#####対応する曲をダウンロード#####
応答.リダイレクト(ダウンファイル)
応答.終了
%>
----上記の手順により、基本的なミュージック サーバーが構築されます。もちろん、完全な音楽サーバーには歌手情報、ファン フォーラム、チャット ルーム、投票所、エンターテイメント ニュース ネットワーク、その他の機能も含めることができ、これらはすべて ASP を使用して 1 つずつ実装できます。この記事は紙面の都合上、詳しくは説明しません。フロントエンド ページが独自のスタイル デザインと完璧な JavaScript プログラム コントロールを採用し、バックエンド プログラミングが柔軟な SQL ステートメントと強力な ASP コンポーネントを使用し、綿密に計画された Web データベースと豊かな創造性を組み合わせている限り、完璧なミュージック サーバーとなります。構築することができます。興味のあるお友達はぜひ試してみてください。奇跡を起こすことができるでしょう。