在本系列的第一部分中,我介绍了Windows Media Encoder 9 Series 并为大家提供了Windows Media 9 Services 的一个概览。使用Encoder,我创建了一个在网络上发送广播数据流的 Web 页面。这次我将创建一个客户端页面,该页面用于接收广播和处理数据流中的任何专用命令。
Windows Media Player (WMP) 可以接收在元文件(metafile)中确定的广播数据流,元文件就像 WMP 的目录。这些基于 XML 的文件详细说明了与元文件相关的数据流以及有关流的参考信息,比如标题、作者和版权等。要使用特殊命令,或者给出有关流的信息,或者创建播放列表条目,都必须要使用元文件。
在这个例子中,我将指定有关我的广播流的一些信息:
<ASX
version="3.0">
<TITLE>Basic Playlist Demo</TITLE>
<ENTRY>
<TITLE>This is a test.</TITLE>
<AUTHOR>Phillip
Perkins</AUTHOR>
<COPYRIGHT>(c)2004 Phillip
Perkins</COPYRIGHT>
<REF
href="http://ct.com.com/click?q=
</ENTRY>
</ASX>
这段代码定义广播流。请注意<REF> 标签,它向客户端提供广播流的源地址。在设置Encoder 配置文件时,要给流起一个名称。在<REF> 标签的 HREF 属性中可以看到我的流的名称是 Live。
下面是客户端代码:
<html>
<head>
alert(scType + ", " + Param);
</script>
</head>
<body bgcolor="black">
<OBJECT id=player style="LEFT: 0px; TOP: 0px;" type=application/x-oleobject
classid="CLSID:6BF
<PARAM NAME="URL"
VALUE="http://localhost/Develop/Media/wm_test.wvx">
<PARAM NAME="rate" VALUE="1">
<PARAM NAME="balance"
VALUE="0">
<PARAM NAME="currentPosition"
VALUE="0">
<PARAM NAME="defaultFrame"
VALUE="">
<PARAM NAME="playCount"
VALUE="1">
<PARAM NAME="autoStart"
VALUE="-1">
<PARAM NAME="currentMarker"
VALUE="0">
<PARAM NAME="invokeURLs"
VALUE="-1">
<PARAM NAME="baseURL" VALUE="">
<PARAM NAME="volume"
VALUE="100">
<PARAM NAME="mute" VALUE="0">
<PARAM NAME="uiMode"
VALUE="full">
<PARAM NAME="stretchToFit"
VALUE="0">
<PARAM NAME="windowlessVideo"
VALUE="0">
<PARAM NAME="enabled"
VALUE="0">
<PARAM NAME="enableContextMenu"
VALUE="0">
<PARAM NAME="fullScreen"
VALUE="0">
<PARAM NAME="SAMIStyle"
VALUE="">
<PARAM NAME="SAMILang"
VALUE="">
<PARAM NAME="SAMIFilename"
VALUE="">
<PARAM NAME="captioningID"
VALUE="divCaptions">
<PARAM NAME="enableErrorDialogs"
VALUE="0">
</OBJECT>
<br><br>
<div id="divCaptions" style="
width: 95%;
font-size:
font-family: Verdana;
color: lightsteelblue;
height: 100px;
border: 1px lightsteelblue solid;
padding: 2px 2px;
">
</div>
</body>
</html>
这个页面的最重要的部分是<OBJECT> 标签指定的 WMP。有很多<PARAM> 与这个对象相关,但是(对于我这个应用来说)最重要的两个是 URL 参数和captioningID 参数。URL 是元文件的地址,captioningID 是显示任何标题的<DIV> 元素的 ID——在这个页面中是divCaptions。
在前面的例子中,我给了广播员发送 URL 命令给客户端的能力。在 URL 的结尾,我追加了字符串“&&frame2”。这就告诉 WMP 从哪一帧定位 URL。如果你有一个 Web 演示,或者你需要遍历一系列导出的幻灯片,这样就比较方便。你应该将这个 Web 页面包含在一帧中或者将“幻灯片”放在邻接的帧中。
Windows Media 9 Services 使创建自定义多媒体流和广播变得极为容易。它的另一个优势是其成本——Encoder 是可免费下载的,而且Windows Media 9 Services (服务器组件) 是作为 Windows 2003 Server 的一个选项提供的。