步骤三 音乐播放页面的实现
( 1 )新建动态网页。新建一个 ASP.NET 动态网页,为页面添加数据集“ musicData ”,该数据集的设置如图 94-9 所示。
( 2 )添加命名空间“ System.Io ”。切换至代码视图,为页面添加命名空间“ System.Io ”,具体操作可参考实例 81 中的图 81-2 。添加命名空间,使程序能够运用 ASP.NET 操作文件。

( 3 )修改代码。在代码视图中找到数据集“ musicData ”的源代码,如图 94-10 所示。将图 94-10 中圆角方框①所示的代码删除,将图 94-10 中圆角方框②所示的代码改为“ False ”。

( 4 )在“ <MM:PageBind runat="server" PostBackBind="true" /> ”标签之后输入如下所述的代码。
<script runat="server">
Sub Page_Load(Sender As Object,e As EventArgs)
musicData.CommandText="SELECT id,url from music where id in ("& session("playch") &")"
musicData.debug=true
End Sub
</script>
(读者可打开【光盘】|【源文件】|【实例 94 】|【 94.2.txt 】文件,直接复制)
程序说明:
该代码其实是定义一个“ Page_Load ”的过程,在这个过程中重新定义了数据集“ musicData ”的查询命名,查询歌曲序号( id )在“ Session(“playch”) ”中的所有记录。这与前面讲过的“ Session(“playch”) ”存储形式是相对应的。
( 5 )添加“ AtiveX ”组件。切换至设计视图,执行【插入】|【媒体】|【 AtiveX 】菜单命令,为页面添加“ AtiveX ”组件。由于本实例是在线音乐,为此编辑该“ AtiveX ”为“ Media Player ”播放组件,如图 94-11 所示。

提示:图 94-11 中所示的步骤②输入“ Media Player ”的注册类 ID 为“ CLSID:6BF 52A 52- 394A -11d3-B153 -00C 04F 79FAA 6 ” ;步骤③选择的类型为“ application/x-oleobject ”;步骤⑥添加的 3 个参数分别为参数“ URL ”,其相应值为“ music.asx ”,参数“ autoStar ”,其值为“ true ”,参数“ playCount ”,其相应值为“ 0 ”。参数“ URL ”用于设置播放音乐的地址,这里指的是播放列表“ music.asx ”的值。参数“ autoStar ”用于设置是否自动播放。参数“ playCount ”用于设置循环播放的次数,当该值为“ 0 ”时,表示无限循环播放。
( 6 )播放列表“ asx ”文件。在开始动态生成播放列表“ music.asx ”之前,先介绍“ Media Player ”的播放列表“ asx ”文件。图 94-12 所示是一个播放列表“ asx ”文件。第 1 行是版本号, <entry></entry> 之间是一个播放流,“ asx ”文件中可以有多个播放流,并组成播放列表。图 94-12 所示的“ asx ”文件中就有 3 个播放流。
( 7 )在“ Page_Load ”过程中添加如下所述的代码。
Dim xlmstring As String
Dim i As Integer
xlmstring = "<ASX VERSION="
xlmstring+="""3.0"""
xlmstring+=">"
For i = 0 To musicData. RecordCount - 1
xlmstring += "<ENTRY>"
xlmstring +="<REF HREF="""
xlmstring+=musicData.FieldValueAtIndex(i, "url", Nothing)
xlmstring+="""/>"
xlmstring +="</ENTRY>"
Next
xlmstring += "</ASX>"
Dim file_path As String
file_path = Server.MapPath("music.asx")
Dim fs As StreamWriter = New StreamWriter(file_path, False)
fs.WriteLine(xlmstring)
fs.Close()
(读者可打开【光盘】|【源文件】|【实例 94 】|【 94.3.txt 】文件,直接复制)
程序说明:
首先定义字符串变量“ xlmstring ”,并添加字符串“ <ASX VERSION="3.0"> ”。根据数据集“ musicData ”记录大小循环,把“ <entry></entry> ”之间的播放流添加到字符串变量“ xlmstring ”中,“ <entry></entry> ”之间的播放流音乐文件地址为第 i 记录中字段“ url ”的字段值( musicData.FieldValueAtIndex(i, "url", Nothing) )。最后将生成的“ asx ”文件的内容字符串写进播放列表“ music.asx ”文件中。
提示:在“ asx ”文件中各参数属性值不支持单引号,如果将版本号设置为“ <ASX VERSION=' 3.0' > ”,则“ Media Player ”将不能正确播放该“ asx ”文件,其正确设置应为“ <ASX VERSION="3.0"> ”。所以程序中出现一些重复的双引号,如“ xlmstring+="""3.0""" ”,就是为了在“ asx ”文件中正确设置各参数的属性值。
( 8 )保存该 ASP.NET 动态网页为“ play.aspx ”。
音乐娱乐网站的实现,其实主要解决多媒体播放控件的设置、音乐播放列表的动态生成。在实际应用中,应将音乐的播放次数与站点的收益联系起来,而且要解决如何防止多媒体被盗链、下载等问题。读者们应在本实例介绍的基础上,从这几个方面作更为深入的研究。至此,本实例介绍完毕。