流媒体文件和Web页面的结合

做影视网站时候遇到一个小问题,因为要根据不同格式调用不同播放器,搜索了很多找到这篇文章比较全面,最近看到不少朋友想再自己的网页中插入播放器,其实并不难,此文愿与大家分享之。


您的查询字词都已标明如下:网页中播放 rm 适应播放窗口 (点击查询词,可以跳到它在文中首次出现的位置)
(百度和网页http://www.studycity.cn/kj/X520990001/content/ckzl/dianziwengao/流媒体文件与网页的结合.doc的作者无关,不对其内容负责。百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面。)

--------------------------------------------------------------------------------
第九章 流媒体文件和Web页面的结合
在完成了流媒体文件的制作,并且通过SMIL文件将它们组合成流式多媒体节目之后,就要准备在Internet或是Intranet上发布它们了.你可以在Web页面中直接加入连接到流媒体文件或是SMIL文件的超级链接,当用户点击链接时,会启动用户端的RealPlayer,这时RealPlayer作为一个单独的应用程序窗口被打开,来播放链接内容.播放结束后,关闭RealPlayer窗口,继续浏览Web页的其它内容.
这种方法的实现非常简单,但RealPlayer窗口有时会覆盖掉网页的其它内容.为了使用户在观看流媒体播放的同时可以继续浏览网页,或者进行其它操作,为用户提供一个完整而整齐的用户界面,有时需要将RealPlayer播放窗口结合到Web页中.这样用户就可以通过支持流媒体播放的插件在Web浏览器中直接播放流媒体文件或SMIL文件,而不用再另外启动RealPlayer.在Web页中还可以加入对播放的控制,比如快进,暂停等.
本章将介绍如何通过HTML标记语言来实现流媒体文件或SMIL文件和Web页面的结合.
结合方式
为了支持在Web浏览器中播放流媒体,RealPlayer为Netscape Navigator 3.0和Microsoft Internet Explorer 3.0及其它们各自以后的版本提供了一个插件(plug-in),支持以Netscape插件的形式在Web浏览器中播放RealSystem系列的流媒体文件.同时,在Microsoft Internet Explorer 3.0及其以后的版本中,还有比如Visual Basic,Visual C++和Microsoft Access等支持ActiveX控件的应用程序中,都支持以ActiveX控件的形式播放流媒体.
这两种方式的效果是相同的,你可以根据实际情况选择采用其中的任何一种方式.下面我们就分别来介绍这两种方式.
Netscape插件
RealPlayer的Netscape插件是通过HTML语言中的标记实现的.每一个标记都有3个必须设置的参数:src,width,height,以及一些可任选的参数.一个基本的标记如下所示.其中src参数的值是所需播放的流媒体文件.关于src参数值的写法,在下面我们将专门来介绍.

这个标记在Web页中建立了一个宽300像素.高134像素的播放区域.参数的写法是"参数=参数值".除了src参数的值必须小写和包含在双括号之内外,其它的参数值不用双括号,参数名和参数值的大小写也没有明确的规定.
为了保证所有的用户浏览器都能正确地显示网页,尤其是那些不支持Netscape插件的浏览器,通常还通过标记再定义一个直接指向流媒体文件的超级链接,这个标记一般来讲是紧接在标记之后的.请看下面这个例子:
通过RealPlayer播放
在这个例子中,支持插件播放的浏览器将隐藏掉和标记之间的文字,不支持插件播放的浏览器将忽略标记,直接显示"通过RealPlayer播放"的超链接.用户可以通过点击超级链接,启动RealPlayer来播放流媒体文件.
ActiveX控件
RealPlayer的ActiveX控件是通过HTML语言中的标记实现的.对于标记,你可以给它定义一个ID,比如ID=RVOCX,同时必须为它定义一个如下所示的class ID来表示是RealPlayer的ActiveX控件.
CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"
标记也需要定义浏览器中播放区域的高度和宽度的值.一个典型的标记的写法如下例所示:
… 其它参数 …
这个标记在Web页面中定义了一个宽度为300像素,高度为134像素的播放区域.在和之间,你可以定义任何数量的其它参数,参数的写法依照下面的格式:

其中PARAM,NAME,VALUE以及参数名和参数值对于大小写没有固定的要求,在本书中我们都以大写来表示.但如果参数值为文件名时必须是小写.所有的参数名和参数值都必须包含在双引号内.
基本参数设置
RealPlayer的Netscape插件和ActiveX控件都需要设置一些相同的基本参数.但在设置这些参数时,插件和控件的语法规则是不同的.在这一节我们就来介绍这些基本参数的设置.
src参数

src参数通过双引号给出了需要播放的媒体源文件的URL地址,其中文件目录名称不能含有空格符号.对于ActiveX控件,标记的CLASSID参数已经定义了通过RealPlayer在Web页中播放媒体源文件,所以在标记中只需要直接链接到相应的Real媒体文件或SMIL文件.如果媒体源文件存放在RealServer上,RealServer使用Ramgen,那么在文件的URL中要体现出来,如下所示.关于RealServer的Ramgen这个概念,我们将在后面的章节中介绍.
对于RealPlayer的Netscape插件,每一个标记中都必须定义src参数.你可以使用两种方式来定义src参数.如果媒体源文件存放在RealServer上,RealServer采用Ramgen方式,你可以在媒体源文件的URL中加入" embed".这可以使得RealPlayer在Web页面中通过Netscape插件来播放媒体源,而不再需要启动RealPlayer作为一个单独的应用程序窗口.如下所示:
SRC="http://realserver.example.com:8080/ramgen/sample.smil embed"
其中,:8080定义了Real服务器上HTTP协议的传输端口,/ramgen/是采用Ramgen方式的Real服务器上的一个虚拟目录.关于这些概念,我们将在下一章中详细介绍.
第二种方法是建立一个Ram文件,文件扩展名为.rpm,通过Ram文件链接到所要播放的媒体源文件.在src参数中,直接定义Ram文件的URL,不需要使用Ramgen或是" embed". 你可以将Ram文件存放在Web服务器上,通过它再链接到存放在别的Web服务器或Real服务器上的媒体源文件.下面的例子就链接到一个存放在Web服务器上的Ram文件.关于Ram文件的写法,我们在下一节中专门介绍.
SRC="http://www.example.com/media/sample.rpm"
Width和Height参数
这是每一个和标记都必需的两个参数,它们定义了Web页面中播放区域的高度和宽度.如果你不定义它们,在Web页中的播放区域就会显示成为一个小的图标,在Web页中流媒体的播放是不会自动调整为媒体文件原有的图像大小的.这两个参数值的默认单位是像素,因此定义"width=300"就在Web页面中定义了一个300像素宽的播放区域.如果定义这两个参数值为0,则在Web页中隐藏了播放区域.
你也可以定义这两个参数的值为百分比值,这个百分比值是相对于浏览器的窗口尺寸而言的.比如,定义"Width=50%"就定义了一个宽度为浏览器窗口一半的播放区域.不过我们建议读者注意,如果定义的播放区域大小和媒体源文件的原有尺寸不同,不同的媒体文件其效果是不同的.如果是一个视频文件,播放区域的尺寸大于其文件编码生成时的图像尺寸,其播放效果就会相应降低.如果是基于矢量的媒体文件,比如Flash动画,在尺寸不同的播放区域中播放效果不会有多大的变化.
NOJAVA参数
在标记中,定义"NOJAVA=true"可以阻止浏览器虚拟JAVA系统的启动.例如:

在Netscape插件中,我们建议读者采用这种方法.因为在这一章中介绍的Netscape插件,其所有参数都不需要浏览器虚拟JAVA系统的支持.如果启动它会延迟流媒体文件的播放.在Netscape插件中只有一种情况需要启动浏览器的虚拟JAVA系统,那就是其中包含了通过JavaScript定义的插件的某些扩展功能.这时只要将标记的NOJAVA参数缺省就可以了.在ActiveX控件中,也可以定义NOJAVA参数,但通常没有什么作用.
编辑Ram文件
当用户点击一个指向位于Real服务器上的流媒体文件的链接时,许多浏览器由于它们原有的设置,并不会启动RealPlayer作为一个辅助的播放程序.RealSystem提供了一种中介文件-Ram文件,来帮助用户端系统启动RealPlayer.
Ram文件是一种纯文本文件,其文件扩展名为.ram,当将其作为Netscape插件或ActiveX控件加入到网页中时,其文件扩展名为.rpm.在Ram文件中,列出了所要播放的流媒体文件的URL地址.当用户端浏览器载入Ram文件时,就会启动RealPlayer作为辅助播放程序.RealPlayer会自动按照Ram文件中的URL地址,调入媒体文件进行播放.当然,当RealServer采用Ramgen方式时,它会启动用户端的RealPlayer,不需要通过Ram文件中转.但在下面几种情况下,必须使用Ram文件.
媒体源文件或SMIL文件存放在Real服务器上,Real服务器不使用Ramgen.
媒体源文件或SMIL文件存放在Web服务器上.
Web页和播放的媒体源文件都在用户的本地机上而不是通过网络传输,如多媒体光盘.
定义了RealPlayer用特定的模式播放媒体文件,比如全屏播放.
Ram文件的编辑可以在任何可以生成纯文本文件的文本编辑器中进行,比如Windows的"记事本".只需在文件中输入所要播放的SMIL文件或是流媒体文件的URL就可以了.对于位于不同媒体服务器上的文件,由于其所采用的数据传输协议不同,Ram文件的写法也不同.
媒体文件位于Real服务器上
位于Real服务器上的SMIL文件或流媒体文件,其采用的数据传输协议为"RTSP",因此它们的URL必须以"rtsp://"开头.当Real服务器不采用Ramgen方式时,媒体文件必须通过Ram文件过渡.下面是关联一个位于Real服务器上的SMIL文件的Ram文件源代码.
rtsp://realserver.example.com/media/sample1.smil
你也可以通过Ram文件定义按顺序播放多个流媒体文件,只需要在Ram文件中将这些文件的URL按顺序排列就行了.当然,这些文件不能是SMIL文件,这有点类似于SMIL文件中标记的作用.比如,下面这个例子定义循序播放3个位于Real服务器上的Real视频文件.当然,这3个视频文件也可以位于不同的Real服务器上,甚至可以分别位于Real和Web服务器上,只要它们的URL表示正确就可以了.
rtsp://realserver.example.com/media/video1.rm
rtsp://realserver.example.com/media/video2.rm
rtsp://realserver.example.com/media/video3.rm
媒体文件位于Web服务器上
位于Web服务器上的SMIL文件或流媒体文件,其采用的数据传输协议为"HTTP",因此它们的URL必须以"http://"开头.下面是关联一个位于Web服务器上的SMIL文件的Ram文件源代码.
http://www.example.com/media/sample1.smil
同样,下面的例子定义按顺序播放3个位于Web服务器上的Real视频文件.
http://www.example.com/media/video1.rm
http://www.example.com/media/video2.rm
http://www.example.com/media/video3.rm
媒体文件位于用户本地机上
有时播放流媒体文件并不需要通过网络传输,媒体文件就位于用户的本地机上.比如,媒体文件存储在光盘上,位于用户机的CD-ROM驱动器上,文件数据的传输不涉及到网络传输协议.这么的文件其URL必须以"file://"开头.考虑到文件路径的变化,一般其URL采用它们相对于Ram文件的相对路径.下面的例子Ram文件关联了一个位于其下一级media子目录中的SMIL文件.
file://media/sample1.smil
定义循序播放3个位于同一子目录中的Real视频文件的Ram文件源代码如下:
file://media/video1.rm
file://media/video2.rm
file://media/video3.rm
通过Ram文件,你还可以定义RealPlayer在播放流媒体或SMIL文件时最初的显示方式.比如,可以定义RealPlayer以媒体文件原有尺寸的2倍来播放;也可以定义RealPlayer以压缩方式来播放.这些可以通过在Ram文件中所关联的媒体文件的主URL地址后加入screensize参数或mode参数来实现.这些参数和媒体文件的主URL之间用问号" "隔开.
screensize="double" 定义媒体文件以其原有尺寸的2倍在RealPlayer中播放.例如:
rtsp://realserver.example.com/media/video1.rm screensize="double"
screensize="full" 定义媒体文件以全屏方式播放.这将隐藏其它所有的窗口,使用户的显示器象电视机屏幕一样.用户可以通过点击鼠标右键来控制播放.例如:
rtsp://realserver.example.com/media/sample1.smil screensize="full"
screensize="original" 定义媒体文件以其原有尺寸播放.这是screensize参数的默认值.
mode="compact" 定义RealPlayer以压缩方式播放媒体文件,这时RealPlayer只显示播放窗口以及一些基本的播放控制.该方式只适用于RealPlayer8以及更高的版本.RealPlayer的压缩播放窗口如图9-1所示.
图9-1 RealPlayer的压缩播放窗口
你也可以同时定义这两个参数.第一个参数和主URL之间用" "隔开,两个参数之间用一个符号"&"隔开.下面的例子定义了RealPlayer以压缩方式以及2倍尺寸播放一个Real视频文件.
rtsp://realserver.example.com/media/video1.rm screensize="double"&mode="compact"
这里请读者注意,RealPlayer的压缩播放和全屏播放是不能同时定义的.同时,在采用2倍或全屏的方式播放媒体文件时,要注意图像的清晰度是否受到影响.而且这两种方式建议大家在高速宽带网上使用,对于普通的Modem用户,这也许反而会影响播放效果.
另外,在Ram文件中还可以通过磅值符号"#"加入注释内容.下面的例子加入了2个注释行.
# 循序播放2个视频和一个SMIL文件
# 通过Real服务器采用"流"式传输
rtsp://realserver.example.com/media/video1.rm
rtsp://realserver.example.com/media/video2.rm
rtsp://realserver.example.com/media/sample2.smil
在完成了Ram文件的编辑后,将其保存为纯文本文件.如果是用RealPlayer来播放它,定义其文件扩展名为.ram;如果是用浏览器的RealPlayer播放组件来播放它,定义其文件扩展名为.rpm.对于.ram文件,只需在网页中建立指向它的超链接;对于.rpm文件,需要将其作为Netscape插件或是ActiveX控件加入到网页中,即将它的URL作为相应的或标记的src参数值.请读者注意下面的3个HTML源代码例子.
点击视频




Ram文件可以存放在Real服务器上,也可以存放在Web服务器上.当用户浏览器载入Ram文件时,它会启动RealPlayer或相关的播放组件,根据Ram文件中媒体文件的URL来发出调用文件数据的请求.因此Ram文件和所关联的媒体文件不必位于相同的服务器上.
加入RealPlayer播放控制
通过controls参数,可以在网页中加入对RealPlayer播放进行控制的控件,比如播放按钮,暂停按钮和停止按钮等.当用户浏览网页时,就可以和单独启动RealPlayer播放窗口时一样,对媒体文件的播放进行控制.
每一个播放控制的控件,比如播放按钮(play)或是其它播放控件,都必须作为一个独立的Netscape插件或ActiveX控件加入到网页中.下面的两个例子分别是通过插件和控件的方式在网页中加入一个播放/暂停按钮.
其中src参数的值就是相应的需要播放控制的流媒体文件的URL,controls的值为PlayButton表示加入的控制为一个播放/暂停按钮.Width和Height参数定义了按钮在网页中图案的大小.
在这一节中,我们将分类介绍所有的RealPlayer播放控制.对于每一个控制控件,我们都会推荐一个相应的图案尺寸.采用这个图案尺寸,在网页中显示的控制控件和RealPlayer播放窗口中的完全相同.当然,你也可以采用不同的尺寸,使得控件图案在网页中显示时适当放大或缩小.
基本控件
播放窗口 该控件在网页中加入了一个播放窗口,对于视频,动画等可视流媒体,该控件是必须的.即使不再加入其它播放控件,使用Windows操作系统的用户也可以通过在该播放窗口中通过右击鼠标,弹出播放控制菜单来进行播放控制.该控件的定义为controls参数的值为ImageWindow,尺寸参数的值可以根据媒体文件实际的图像尺寸进行定义,如图9-2所示.
图9-2 播放窗口
RealPlayer基本控制面板 该控件在网页中加入了RealPlayer的基本控制面板.面板上的按钮包括播放,暂停,停止,快进和快退,还包括显示播放进程的滑块,一个扬声器图标,单击这个图表,可以弹出音量控制滑快和静音选择.在按钮下面是文件信息栏,状态栏,网络拥挤警告和播放计时栏,如图9-3所示.该控件的定义为controls参数的值为All或是Default,建议的图案尺寸为:宽度375像素,高度100像素.
图9-3 RealPlayer基本控制面板
独立控件和滑块
除了以上两种基本控件外,还有一些单独的控件和滑块.比如播放按钮,停止按钮,音量调节等,他们都可以作为独立的插件或控件加入到网页中.表9-1和表9-2汇集了这些独立的控件和滑块.
控件名称
Controls
参数值
建议
控件尺寸
控件图案
播放控制栏
ControlPanel
宽:350
高: 36
播放/暂停
PlayButton
宽: 44
高: 26
播放
PlayOnlyButton
宽: 26
高: 26
暂停
PauseButton
宽: 26
高: 26
停止
StopButton
宽: 26
高: 26
快进
FFCtrl
宽: 26
高: 26
快退
RWCtrl
宽: 26
高: 26
表 9-1
控件名称
Controls
参数值
建议
控件尺寸
控件图案
静音
MuteCtrl
宽: 26
高: 26
音量/静音
MuteVolume
宽: 26
高: 88
音量
VolumeSlider
宽: 26
高: 65
播放位置
PositionSlider
宽:120
高: 26
Real标记
HomeCtrl
宽: 45
高: 25
文件信息栏
TACCtrl
宽:370
高: 32
表 9-2
信息栏
RealSystem为网页的插件和控件提供了内容丰富的RealPlayer播放控制.除了上面介绍的播放控制按钮和播放状态显示控件外,还提供了RealPlayer播放窗口的其它内容.它们都可以作为独立的插件或控件加入到网页中.
文件信息和音量控制面板 该控件在网页中加入了RealPlayer的文件信息栏和播放音量控制.面板上包括一个文件信息显示区域,显示播放的媒体文件的标题,作者,版权等基本信息;另外还包括一个静音控制按钮和一个音量控制滑块.如图9-4所示.定义该控件的controls参数值为"InfoVolumePanel",建议图案尺寸宽度为325像素,高度为55像素.
图9-4 文件信息和音量控制面板
文件信息栏 该控件在网页中单独加入了RealPlayer的文件信息栏,显示媒体文件的标题,作者,版权等基本信息,如图9-5所示.定义该控件的controls参数值为"InfoPanel",建议图案尺寸为宽度300像素,高度55像素.
图9-5 文件信息栏
状态栏
RealSystem还提供了一些可以显示播放状态的控件.
状态面板 该控件在网页中加入了RealPlayer的状态面板.面板上的内容包括一个状态栏,显示播放的流媒体文件的类型,是SureStream还是Single-rate,还有该媒体文件当时的数据传输速率;一个播放位置栏,显示当前的播放位置位于整个媒体文件时间线上的时间点,还有整个文件的时间线长度;面板上还包括一个作为网络拥挤警告的LED发光点,当网络传输出现拥挤,文件数据传输发生困难时,该发光点会发亮以提醒用户.如图9-6所示.定义该控件的controls参数值为"StatusBar",建议图案尺寸为宽度300像素,高度30像素.
图9-6 状态面板
状态栏 该控件在网页中单独加入了状态栏,如图9-7所示.定义该控件的controls参数值为"StatusField",建议图像尺寸宽度为200像素,高度为30像素.状态面板或是状态栏都包含在前面介绍的基本控制面板中.你可以在网页中单独加入它们,也可以通过加入基本控制面板加入它们.但是,如果在网页中不加入RealPlayer的状态面板或状态栏,用户浏览该网页时浏览器的状态栏中会出现出错信息.当然,这并不会影响媒体文件的正常播放.
图9-7 状态栏
播放位置栏 该控件在网页中单独加入了播放位置栏,定义该控件的controls参数值为"PositionField",建议图像尺寸宽度为90像素,高度为30像素,如图9-8所示.
图9-8 播放位置栏
多个控件的关联
通过console参数,可以为加入到网页中的Netscape插件或是ActiveX控件定义一个名称.通过这个名称,可以将多个插件或是控件关联在一起,用户就可以对网页中媒体文件的播放进行各种各样的控制了.比如,在网页中,你可以加入4个独立的或标记,分别定义播放窗口,播放/暂停按钮,停止按钮以及状态面板.然后通过console参数将它们关联在一起,用户就可以通过点击按钮,对播放窗口中显示的媒体文件的播放进行控制,状态面板上也会显示出该文件播放相关的信息.你还可以通过HTML定义这些控件在网页中的位置,比如可以将它们放置在不同的表格单元格中,为用户在网页中构造一个相当直观的RealPlayer播放面板,大大加强网页的美观程度,使用户在浏览时可以一目了然.
要将独立的或是标记关联在一起,它们必须具有相同的console参数值.也就是说,它们属于同一个console组合.RealSystem还提供了预定义的console参数值,可以方便或是标记的关联.定义console参数的值为"_master"表示该插件或是控件和网页中其它所有的插件或是控件关联在一起;定义console参数的值为"_unique"表示该插件或是控件是独立的,和网页中其它所有的插件或是控件都没有关联.
在同一个网页中,可以包含多个console组合,分别控制播放不同的媒体文件.比如,可以在同一个网页中播放两段不同的视频文件,分别定义两个不同的console组合:video1和video2.所有关联在video1组合中的播放控件控制video1的播放;所有关联在video2组合中的播放控件控制video2的播放.两者之间是互不影响的.比如,调节video1的音量控制滑块并不会影响video2播放时的音量.
下面是在定义或是标记的console参数时需要注意的地方:
每一个标记都必须定义一个src参数.属于同一个console组合的标记应该具有相同的src参数值.
对于ActiveX控件,只有属于某一个console组合中的标记才需要定义src参数.
如果在一个console组合中的或是标记具有不同的src参数值,那么在这些src参数值中,RealPlayer能找到的第一个有效的值将成为整个console组合的src参数值.但是这并不意味着一定是组合中第一个标记的src参数值.
点击一个console组合中的play按钮将停止别的console组合的播放.这就可以使你在同一个网页中通过不同的console组合播放不同的声音文件或是在同一个播放窗口中播放不同的视频文件.
下面是两个关联多个控件的例子,分别通过和标记定义一个播放窗口和两组播放控件(一个播放/暂停按钮和一个stop按钮),分别控制两个视频文件sample1.rm和sample2.rm的播放.通过预定义的console参数"_master"将播放窗口和两组播放控件都关联起来,两组控件分别定义不同的console参数值,因此它们之间是没有关联的.
Netscape插件
由于每一个标记都必须定义一个src参数,因此在这个例子中播放窗口的src参数值和第一个播放/暂停按钮相同.用户点击任何一个play按钮,与该播放控件相对应的视频文件就开始在播放窗口中播放,点击相应的stop按钮将终止其播放,或是点击另一个play按钮在播放窗口中开始播放另一个视频文件,同时终止正在播放的视频文件.下面是这个例子的HTML源代码.
Video 1

Video 2

ActiveX控件
在这个例子中,由于定义播放窗口的标记不属于任何console组合,因此没有必要定义其src参数.这个例子在浏览器中显示的结果和上面Netscape插件的例子完全相同.以下是该例子的HTML源代码,为了方便,我们省略了CLASSID参数的值.
Video 1
Video 2
控制图像显示及设置自动播放
RealSystem还为和标记提供了一些参数,分别用于控制可视媒体文件,比如视频,动画,RealPix等,在浏览器中播放时其图像的显示;还可以定义自动播放和循环播放.
控制图像显示
用于控制图像显示的参数有BackgroundColor,Center,MainTainaspect和NoLogo等,下面就来一一介绍.
BackgroundColor参数 该参数定义了播放窗口的背景色.当图像没有充满播放窗口或图像画面中包含有透明色部分时,播放窗口的背景色将被显示出来.该参数的值是用HTML默认的16进制的RGB颜色值(#RRGGBB)或颜色的英文名称来表示的.关于如何表示颜色值,请读者参阅6.3.5,7.7.3以及本书中其它相关的章节.
Center参数 Center参数的默认值为"false",定义了图像将充满整个播放窗口.如果图像原有的尺寸和播放窗口不同,则图像在显示时将被放大,缩小或是变形,这将影响到媒体文件的播放效果.定义Center参数值为"true"将使图像以原有的正常尺寸在播放窗口中居中显示.这样即使定义的播放窗口尺寸和图像原有尺寸不同,也不会影响图像的显示效果.
MainTainaspect参数 该参数的默认值为"false",定义图像将充满整个播放窗口.如果定义该参数值为"true",图像在改变其原有尺寸以适应播放窗口时,将保持其原有的宽度和高度的比例,可以保证图像不发生变形和扭曲.该参数和Center参数不能同时使用.定义了该参数值为"true"时,图像原有的宽度高度比将保持不变.例如,图像的宽高比为1:1,播放窗口的宽高比为2:3且尺寸大于图像的原有尺寸.图像将在窗口中居中显示,并且宽度和高度将被放大,直到其宽度和窗口一致,这时其高度仍然小于播放窗口.图9-9表示了当定义MainTainaspect参数或Center参数值为"true"时图像在播放窗口中显示的情形.
图9-9 图像显示的控制
NoLogo参数 当NoLogo参数定义为"true"时,将阻止RealNetwork的标记图案(如图9-2所示)在播放窗口中显示.当没有可视媒体文件在窗口中播放时,窗口中只显示它的背景色.该参数的默认值为"false".
下面两个例子分别在和标记中定义了BackgroundColor和Center参数.
设置自动播放
通过AutoStart, Loop和NumLoop等参数,可以定义加入到网页中的流媒体文件自动播放,即在浏览器载入网页的同时开始播放;以及定义其连续循环播放,可以是无限循环播放,也可以定义循环播放为一个有限的次数.
AutoStart参数 定义AutoStart参数值为"true"表示在浏览器一旦完成网页内容的载入,立刻开始播放相应的流媒体文件.对于具有相同console参数值的或标记组合,只需给其中的一个标记定义AutoStart参数.不定义该参数或定义其参数值为"false"就阻止了流媒体文件的自动播放.用户在浏览器载入网页后需要通过某个操作,比如点击play按钮,来启动流媒体在浏览器中的播放.
Loop参数 如果定义Loop参数值为"true",流媒体文件在网页中的播放将会连续地无限循环下去,直到用户通过某一操作,比如点击stop按钮,来终止播放.和AutoStart参数一样,对于或标记的console组合,只需为其中的一个标记定义Loop参数.不定义该参数或定义其参数值为"false",网页中媒体文件的播放在完成一遍后就停止了.用户需要通过点击play按钮再次启动它的播放.
NumLoop参数 该参数的值定义了流媒体文件循环播放的次数.比如,定义其参数值为2表示该媒体文件将被循环播放2次.如果同时定义了Loop和NumLoop参数,Loop参数将被忽略.
下面两个例子就是在和标记中定义这些参数的HTML源代码.
设置播放布局
如果要在网页中同时加入多个可视流媒体文件,合理安排这些文件在网页中的播放区域和位置是非常重要的,这将关系到网页的美观,用户操作的方便以及对网页内容正确的理解.可以有两种方法来设置网页的播放布局,一是编辑一个SMIL文件,在SMIL文件中安排好多种流媒体的播放布局,再将SMIL文件作为Netscape插件或ActiveX控件加入到网页中;另一中方法是通过HTML代码来设置网页的播放布局.
运用SMIL
通过SMIL来控制播放布局,首先需要在SMIL文件中为相应的媒体文件建立播放区域,在SMIL播放窗口中安排这些区域.然后通过Netscape插件或ActiveX控件在网页中建立能容纳整个SMIL播放窗口的区域,将SMIL文件加入到网页中,还可以加入RealPlayer播放控件,对SMIL文件的播放进行控制.
首先请读者来看下面的一个SMIL文件.
















在这个SMIL文件中,定义SMIL文件的播放窗口为400250,同时定义了3个播放区域,同步播放Realpix文件embed.rp,Flash动画文件animate1.swf和Realtext文件embed.rt.通过一个Ram过渡文件embed1.rpm将这个SMIL文件以Netscape插件的形式加入到网页中,再加入一个RealPlayer播放控制,就可以通过浏览器来播放这个SMIL文件了.以下就是该网页的HTML源代码,图9-10是在浏览器中浏览该网页的情形.
Embedded Playback Example 1
通过SMIL控制网页播放布局
图9-10 运用SMIL控制播放布局
如何将SMIL文件和RealPlayer播放控件作为ActiveX控件的形式加入到网页中,请读者运用我们前面介绍的内容自己思考.
运用HTML
同样是在网页中加入上述3个流媒体文件,也可以通过HTML代码来控制它们在网页中的播放区域,即通过HTML的表格来安排网页中各个元素的位置.这里我们介绍将关联3个流媒体文件的SMIL文件和4个独立的RealPlayer播放控件作为Netscape插件加入到网页中表格的单元格中,下面是这个例子的HTML源代码,请读者注意看代码中的注释内容.
Embedded Playback Example 2
通过HTML控制网页播放布局
读者可以注意到,在上面这个例子中,我们通过定义标记的region参数来定义相应流媒体文件在网页中的播放区域.region参数的值即播放区域的名称和SMIL文件中相同.所有标记的src参数是一个关联了SMIL文件的Ram过渡文件embed2.rpm,这样就可以保证所有RealPlayer播放控件都可以将3个流媒体文件作为一个整体来进行播放控制.至于这3个流媒体文件在网页中的播放次序,还是由SMIL文件进行控制.下面是embed2.rpm对应的SMIL文件的源代码.










读者可以注意到,在这个SMIL文件中,只是在BODY部分指定了相应媒体文件的播放区域,而HEAD部分中的播放区域定义被省略了.这一部分工作由HTML代码中标记的region参数来实现.至于如何通过ActiveX控件来实现网页播放布局的控制.请读者自己思考.图9-11是在浏览器中浏览该网页的情形.
图9-11 运用HTML控制播放布局
第九章 流媒体文件和Web页面的结合
阅读更多
换一批

没有更多推荐了,返回首页