如何在网页中播放ASF流媒体文件

2012-08-16 关键词: 4064

Windows Media流媒体可以通过MMS协议或HTTP协议,在Windows Media Player中或在网页中嵌入相应ActiveX进行播放,我们主要讨论在网页中播放ASF流媒体文件的方法,这在网络教育中更有普遍意义。

1. 在网页中播放ASF流媒体文件的原理 
   在网页中播放ASF流媒体文件就是在网页中嵌入Windows Media Player ActiveX控件,通过此控件进行ASF文件的播放。以下是插入此控件的HTML代码。
<OBJECT ID="WMPlay" width=320 height=240 classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" 
codebase="http://activex.microsoft.com/activex/controls/mplayer/en
/nsmp2inf.cab#Version=5,1,52,701"
standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject">
<PARAM name="FileName" value="/bk/sizhongblog/demo.asf">
<PARAM name="DisplaySize" value="0">
<EMBED type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/isapi/redir.dll?
prd=windows&sbp=mediaplayer&ar=media&sba=plugin"
filename="demo.asf"
displaysize="0"
name="WMPlay"
width=320 height=240
></EMBED>
</OBJECT>
其中<object>标签和<embed>标签的嵌套使用是为解决IE与Netscape浏览器的兼容性问题。在<object>标签中,classid指出了Windows Media Player ActiveX控件的版本;ID用于在网页中给这个控件命名,以便在网页中使用脚本(如javascript)对其进行调用(在<embed>标签中使用的是name);width和 height用于设定播放时整个显示区域的尺寸,PARAM用于设定控件的属性,例如name指出属性的名称,相应value则设定其属性值。
特别要注意的是:设定播放的文件名属性时,通常是指向ASX文件,而并非直接指向ASF文件。这是因为ASX文件是meta文件。在使用Windows Media 服务功能来加强流媒体传输性能时,必须使用此ASX文件(详见文后的讨论),而不使用Windows Media 服务功能时也可使用ASX文件来对ASF文件定向,因此此处应将文件名属性指定为ASX文件,这样可在今后对流媒体的播放方式上有变化时不必修改网页。
使用Windows Media 服务功能时的ASX文件内容是在设置单播点时由Windows Media 管理器自动生成的:
<asx version = "3.0">
<title>hly</title>
<entry>
<ref href = "mms://server/video/hly.asf"/>
</entry>
</asx>
此时使用MMS协议传输流媒体,其中server是服务器名称,video是单播发布点别名。
不使用Windows Media 服务功能时ASX文件内容可这样编辑:
<asx version = "3.0">
<title>hly</title>
<entry>
<ref href = "hly.asf"/>
</entry>
</asx>
2.播放ASF流媒体文件控制其它网页的浏览
    在播放ASF流媒体文件时,在指定的时刻显示相应的其它的网页,这是网络教育常用的技术手段。其技术要点是:在网页上设计一个左右分帧的框架结构,将这两个帧按意义命名,例如将左边的帧命名为video,右边显示相应网页的帧命名为content。注意这里的命名应与在ASF文件中插入的URL信息相一致。这样,当左边的帧在播放插入URL信息的ASF流媒体文件时,在相应的时刻就会在右边的帧中显示有关的网页。
3.用超文本链接控制ASF流媒体文件播放的跳转
    用超文本链接可以控制ASF流媒体文件播放的跳转,实现相关知识点的快速搜索。其技术要点是 :在ASF文件中插入相应的时间点标记。在播放ASF视频的网页中用<a href=@"#">为相应的文字建立空超文本链接,并用onclick事件控制Windows Media Player ActiveX插件的CurrentMarker属性,具体代码为<a herf="#"onclick="WMPlay.CurrentMarker='1' ">其中WMPlay是插件的ID和name。此行代码的意义是让控件跳至第一个时间点标记处。当然也可对图像采用相同的方法控制视频的跳转。
4.用ASF流媒体控制Flash动画的播放
    用Flash动画配合视频播放,对视频中不能直接显示的教学内容作深入的表达,这对网络教学是十分重要的一种技术。[4]其技术要点是:在ASF流媒体文件中相应需要控制Flash动画的时间处插入文本类型的脚本命令,如play、pause、stop(分别用于Flash动画的播放、暂停、停止)。在网页的<head></head>标签之间添加下列代码:
<script LANGUAGE="javascript" FOR="WMPlay" EVENT="ScriptCommand(ScType, ScCmd)">
if (ScType =="TEXT"){
if (ScCmd=="play"){flash.Play()};
if (ScCmd=="pause"){flash.Stop()};
if (ScCmd=="stop"){flash.Stop();flash.Rewind()};
}
</script>
其中“WMPlay”是播放ASF流媒体文件的控件ID,函数ScriptCommand的参数ScType是脚本类型。ScCmd是脚本命令,条件语句根据脚本命令调用Flash动画播放器控件的相应的方法,对Flash动画进行控制。注意Falsh.Play()等调用方法命令中的Flash是Flash动画播放器控件的ID和name。
5.自定义按钮控制ASF流媒体文件的播放。
    在网页上用Windows Media Playwer ActiveX控件播放ASF流媒体文件时,设置其属性Controller="true",使控件显示控制条,用户可用此控制条控制ASF流媒体文件的播放。但由于控件的控制条的形式单一,缺少个性,我们通常需要根据ASF流媒体播放的控制需求和网络课程的艺术设计,在网页中设计一些自定义按钮用于控制播放视频(同时应设置控件属性<PARAM name="controller" value="false">,将控制条关闭)。这样既可灵活控制视频的播放,又有整体的艺术性。其技术要点是:在网页中适当的位置插入自定义按钮图像(或者插入交替按钮图像),为其设定空的超文本链接,这样在浏览中当鼠标指向按钮时将出现手形光标。通过按钮行为调用控件中相关的方法,从而控制ASF流媒体文件的播放,有关的代码如下:<a href=@"#"><img title="play" src=@"/bk/sizhongblog/images/play.gif" onclick="WMPlay.play()" width="20" height ="20"></a>其中“WMPlay”是播放ASF流媒体文件的控件ID。
首页 网站建设 小程序 品牌设计 服务项目 案例展示 售后保障 联系方式 新闻中心 关于我们 人才招聘
我们的优势

细致入微的前期服务
精准的策划服务
精湛的网页设计
稳定 可靠 极速的域名和服务器
任何问题,24小时回复并处理

版权所有:苏州谢谢网络传媒有限公司  苏ICP备11087090号   

首页 电话 服务项目