| HelixApp 专业流媒体影音防盗链 |  |
|
Chapter 4: 嵌入环境
通过在Web页面中嵌入RealPlayer或者RealOne播放器控件,你可以把流媒体内容直接加入到页面中。
嵌入播放器环境使得你只需要利用简单的嵌入标签就可以放置一个作品到Web页面中,而且还可以通过Javascript或者VBScript来
进行扩展,利用这样的方法,你可以设置和获取影片属性,控制播放以及完成交互操作。
理解作品嵌入
下面的部分概要介绍一些帮助你判断十分需要嵌入以及怎么样利用标记和脚本语言来实现嵌入的知识。
嵌入环境 vs. RealOne环境
在你开始在Web页面中嵌入前,请阅读Chapter 1来决定是否使用本身
的RealOne播放器环境,它的要求比嵌入播放要低一些,以确定你的最佳选择。 RealOne播放器本身具有不需要使用嵌入标记就显示
HTML页面能力。你应该更多的考虑开发在RealOne播放器环境下使用的作品以最大限度的保护你的劳动成果。
如何嵌入
为了嵌入一个流媒体作品到Web页面中,你需要用到<EMBED>或者
<OBJECT>标签,如何选择依赖于你使用的环境是需要Netscape的插件方法还是ActiveX插件方法(更多信息参考
"两种嵌入方法")。这些标签都允许你加入媒体窗口以及RealPlayer控制(例如 Stop 和 Start)
按钮到你的Web页面中。此外你可以利用Javascript或者VBScript来扩展嵌入组件的功能。
嵌入的播放器
当一名观看者浏览你的Web页面时,
他的浏览器会启动RealOne的嵌入播放器(或者是安装了的其他早期的RealPlayer版本的嵌入播放器)
这个嵌入播放器一直是随RealOne播放器的安装而安装的,以浏览器辅助程序的形式完成媒体播放,而不
需要专门打开一个单独的RealOne播放器。如果用户没有安装RealOne播放器,浏览器会提示用户下载并安装。
向后兼容
指南中这些嵌入标签和方法都是描述RealOne播放器的。
尽管RealOne播放器的嵌入控制和早期版本外观是不相同的,但大多数的标签和方法都是向后兼容于
RealPlayer G2,RealPlayer 7和 RealPlayer 8的,
有的方法还兼容于RealPlayer 5 。因此一个嵌入在你的Web页面中的Stop按钮在
用户安装的是RealOne播放器或者是RealPlayer 8 的情况下是外观不同的,但它们的功能是相同的。
 |
更多信息:
"嵌入控制"用图例形式展示了RealOne播放器的嵌入控制。
|
嵌入作品中的SMIL
在Web页面中你可以嵌入单个影片,影片序列
或者SMIL作品(它可以调整许多影片采用单一的时间线)。
你可以在Web页面中利用一个单独的image窗口显示整个的SMIL作品,或者把每个影片显示在指定的独立窗口中。
RealOne播放器支持SMIL 2.0 和 1.0 ,而RealPlayer G2,
RealPlayer 7 和 RealPlayer 8 只支持SMIL 1.0 。 因此如果你嵌入的作品是SMIL 2.0 的则用户必须把播放器升级到RealOne播放器以上版本。
媒体准备
在创作你的嵌入作品前,你需要
建立你的媒体元素。RealOne播放器支持很多流媒体影片类型,这包括了
RealAudio,RealVideo, RealText (流化时间文本), RealPix (流化的图片序列),
Flash动画和MPEG视频与音频。你还要决定你的作品适用的带宽要求,是拨号连接还是更快的专线连接,或者是所有的情况。
两种嵌入方法
嵌入播放器提供两种标签来把流媒体加入到Web页面中。
第一个方法是Netscape插件方法,它利用 <EMBED> 标签和Javascript命令来完成
嵌入和控制。所有支持这个插件方式的浏览器都支持嵌入播放。主要的支持浏览器见下:
- Netscape Navigator 4.0 或更高版本
已知在一些Netscape Navigator 6.0 版本中存在兼容性问题。虽然 6.1 和 6.2 版本已经能正常工作,但
还是要求在测试其兼容性。
- Microsoft Internet Explorer 5.0 或更高版本
使用<EMBED>标签可以有与IE浏览器使用ActiveX技术一样的效果。
<EMBED>标签可以用于所有的IE版本
,包括IE 6 。
使用Netscape 插件允许你获得更广的Internet观众。
但使用<OBJECT>
- Microsoft Windows平台下的Microsoft Internet Explorer 4.0 或更高版本
- 很多程序支持ActiveX控件,例如Visual Basic和Visual C++。
两种嵌入方法支持同样的标记参数。
此外Javascript和VBScript的方法实际上是相同的。
因为相同的能力,所以你可以根据需要或者你目标用户的性质来自由选择是使用
Netscape plug-in还是ActiveX控件来实现嵌入。
Javascript和VBScript
在一个嵌入作品中,你可以在
Javascript或者VBScript中选择一个脚本语言来扩展作品的功能。
脚本使你可以利用框架、HTML按钮或者图形链接等实现作品的停止、播放以及声音控制等功能。
例如你可以使用你自己的图片来替换Stop按钮,来捕获鼠标点击来完成
影片停止。所有的方法可以从Java、Javascript或者VBScript进行调用,也可以被C++或者其他程序语言调用。
方法
Netscape plug-in和ActiveX 的
嵌入支持同样的方法允许你发布命令以及获得用户嵌入播放器的返回信息,例如它的版本。
Chapter 5依照功能类别介绍方法。
Chapter 6 是所有可用方法的参考。
回调行为
为了增强对嵌入播放发出操作命令的脚本方法能力,播放器提供了
callback方法来报告行为。 你可以利用回调方法中断处理RealOne播放器行为。
这可以使得你可以追踪鼠标移动轨迹、捕获程序控制交互行为以及监控程序的执行,在
Chapter 7 中就是所有的可用回调的参考。
使用Netscape Plug-in
为了使用Netscape plug-in,你要在Web页面中使用<EMBED>。
一个典型的<EMBED>标签有三个必须的参数(SRC,
WIDTH和HEIGHT)
它们指定你需要播放的作品和播放外观尺寸。它还有其他可选参数。
一个典型的<EMBED>标签语法如下:
<EMBED SRC="presentation.rpm" WIDTH=300 HEIGHT=134 PARAMETER=value>
|
前面的例子在Web页面中建立了一个300象素×134象素的播放区域,显示的内容是
presentation.rpm。一般你可以在Web页面中包含多个<EMBED> 标签,每个标签
嵌入不同的RealOne播放器控制,它们通过相同的CONSOLE参数整合在一起。
所有的参数都使用相同的PARAMETER=value形式指定。
虽然在这个手册中参数的名字是使用大写字符来描述,但它可以是对应的小写字符。
除了文件名外(它要求特定的小写)参数值是不区分大小写的。除了
URL类型的参数值,其他不要求在引号内。(译者注:为了更好的浏览器兼容,建议都使用引号来保护参数值。)
 |
更多信息:
所有的<EMBED>参数列表参看
"标签参数"。
SRC参数部分包含了使用Netscape plugin链接到你的媒体的内容。
可用的控制描述在"嵌入控制"部分。
|
通过Javascript扩展嵌入控制
为了利用Javascript扩展RealPlayer的Netscape plug-in功能,你首先要像前文提到的利用
<EMBED>标签在你的Web页面中进行嵌入。
下面的例子展示了一个包含了SRC,
WIDTH和HEIGHT以及其他在"标签参数"
中描述的附加参数的<EMBED>标签:
在这个<EMBED>标签中NAME参数
指定了一个可以被Javascript函数使用的名字。
为了让Javascript可以工作于RealPlayer,<EMBED>标签中必须
不设置NOJAVA=true参数,
这个参数在 Netscape 4.0 中会防止启动Java虚拟机,但它在Netscape 6.0 或者IE浏览器中无效。
一旦你建立了你的标签,你就可以利用Javascript来发布操作命令控制嵌入作品了。
下面的的例子展示了一个简单的框架,它为嵌入作品提供了
Play,Pause和Stop按钮:
<FORM> <INPUT TYPE="button" VALUE="Play" onClick="document.javademo.DoPlay()"> <INPUT TYPE="button" VALUE="Pause" onClick="document.javademo.DoPause()"> <INPUT TYPE="button" VALUE="Stop" onClick="document.javademo.DoStop()"> </FORM>
|
如果你在页面包含超过一个实例的嵌入控制或者是
同样目的的不同表现的嵌入控制,
为了在使用Javascript时可以方便的进行个别管理,
你需要为每个实例指定一个唯一的NAME。
利用Javascript接收回调
在Netscape plug-in中是通过一个预设的内在回调程序
完成RealPlayer事件通知的。依赖于系统和Netscape版本,嵌入的播放器利用不同的机制实现行为操作。
如果你的开发是运行于Windows或者Unix或者Macintosh平台的Netscape 6.0 上的,
在<EMBED>标签中包含一个新的属性参数以定义你Javascript可以访问的行为。而在更早的版本中是使用LiveConnect来接收回调的。
在Netcape浏览器6.0或者更高版本中操作行为
Netscape浏览器6.0 或者更高的版本不采用以往版本提供的方法
来支持回调行为。为此,在创建版本为 6.0.8.1024 的嵌入播放器版本(RealPlayer 8 嵌入播放 升级3)
中提供了一个新的机制来在Javascript和Netscape plug-in回调方法中实现行为操作。
这个方法只适用于下面列表环境下利用Javascript的开发,而不用于C++或者ActiveX。
支持新行为操作机制的结构
| 浏览器 |
版本 |
Windows |
Macintosh |
Unix |
| Netscape Navigator |
6.0 或更高 |
yes |
yes |
no* |
| Microsoft Internet Explorer |
所有版本 |
no |
yes |
no* |
* Unix普遍不支持回调行为操作。
为了在你的Javascript插件中使用新的机制,在<EMBED>
中添加SCRIPTCALLBACKS 参数定义。
可以捕获的行为操作被定义在一个回调方法列表中,或者可以使用All来指示捕获所有行为。例如:
<EMBED SCRIPTCALLBACKS=OnPresentationOpened,OnPositionChange,OnPresentationClosed ...>
|
- 或者 -
<EMBED SCRIPTCALLBACKS=All ...>
|
不要考虑向后兼容性:所有版本的嵌入播放器都会忽略未知的标签。
此外,你要注意的是所有早于 6.0.8.1024 建立版本的RealPlayer播放器都不支持这个特性。
在Netscape浏览器版本6或者更高版本中发送回调给多个Plug-Ins
如果你在一个页面中嵌入了多个plug-ins,
你需要在每个plug-in中接收回调就要在<EMBED>标签中指定唯一的
NAME :
<embed NAME=RVOCX SCRIPTCALLBACKS=All ...>
|
然后预先给每个NAME使用NAME值下划线和回调方法定义回调函数:
function RVOCX_onClipOpened(short_clip_name,url){ ... }
|
NAME值也必须出现在嵌入方法中:
<a href="#" onClick="document.embeds.RVOCX.DoPlay()">Play</a>
|
Netscape Navigator 4.x的行为操作
在对Netscape 4.x开发时,你必须使用LiveConnect来接收发自RealOne播放器的回调。
LiveConnect的描述在随后的地址的
Netscape文档中:
http://home.netscape.com/eng/mozilla/3.0/handbook/plugins/
为了接收回调,你必须在你的HTML中嵌入一个Java<APPLET> 标签。
这个标签可以包括对一个行为接口类文件的引用(例如:
CODE="callback.class")和MAYSCRIPT属性设置。此外你也必须设置
NAME属性 (例如 NAME="MyName")来识别这个
applet实例,见下:
<APPLET CODE="callback.class" WIDTH=1 HEIGHT=1 NAME="MyName" MAYSCRIPT> </APPLET>
|
然后你就可以使用<APPLET>标签名字来获取回调了。例如
可以使用下面的一行来判断影片是否关闭:
if(document.MyName.OnClipClosed())
|
这个指南的HTML+Javascript版本的例子目录中
包含一个基本的回调Java applet(callback.class 和callback.java)
以测试嵌入播放的回调方法。你可以使用这个applet来练习你都回调程序,或者根据你的需要编辑
callback.java文件并编译成你自己的类文件以满足你的程序要求。
类文件
提供向后兼容的RealPlayer实例使用行为通知的类:
- RMObserver.class
RMObserver
为RealPlayer 7 或者更高版本提供的Java行为发布接口。
所有的实现这一接口的对象都能把自己注册到RealPlayer 7 或者更高版本中以实现
获取回调通知的完整设置。
- G2Observer.class
G2Observer是RealPlayer G2提供的Java行为接口。
所有的实现这一接口的对象都能把自己注册到RealPlayer G2中以实现
获取回调通知的完整设置。
- RAObserver.class
RAObserver由RealPlayer 5.0 提供的Java行为接口。
所有的实现这一接口的对象都能把自己注册到RealPlayer 5.0 中以实现
获取回调通知的完整设置。
在Linux下,RMObserver.class文件在/RealPlayer9目录下的
raplayer.zip文件中,在Windows,这些文件放置在\Program Files\Netscape\Communicator\Program\Plugins目录下的rpcl3260.zip文件中。
使用ActiveX控件
为了嵌入ActiveX控件,你需要在页面中使用<OBJECT>标签。
这个标签的定义中还必须包含RealPlayer的classID值:
CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"
|
它也必须要求通过指定width和height来确定播放区域大小。当你还想使用脚本进行
控制时,你还需要为它设置一个ID参数值,例如ID=RVOCX。
<OBJECT>标签的语法如下:
<OBJECT ID=RVOCX CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" WIDTH=300 HEIGHT=134>
...parameters...
</OBJECT>
|
这个标签在Web页面中建立了一个300象素宽134象素高的
嵌入播放区。通常你的Web页面可以包含多个<OBJECT>标签来嵌入不同的RealOne播放器控制。
你需要使用CONSOLE参数来使得所有的控制是协同工作的。
在 <OBJECT>和 </OBJECT>之间,你可以
按下面的语法定义任意数量的附加参数:
<PARAM NAME="name" VALUE="value">
|
尽管在这个手册中采用大写字符给出,但实际上
PARAM, NAME和VALUE
标签可以是任何小写字符。除了文件名,这些值实际上是不区分大小写的。通常为了更好的封闭定义参数值避免歧义,
你需要采用引号。
 |
更多信息:
关于<OBJECT>的参数你可以参考
"标签参数"部分。
SRC部分则包含了如何链接你的ActiveX控制到你的媒体文件的内容。
此外关于可用的控制是在"嵌入控制"介绍的。
|
利用VBScript扩展嵌入控制
为了在IE中扩展RealPlayer的ActiveX功能,你首先是要在你的HTML页面中利用
<OBJECT>标签嵌入控件:
<OBJECT ID=RVOCX CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" WIDTH=220 HEIGHT=180> <PARAM NAME="SRC" VALUE="rtsp://helixserver.example.com/video1.rm"> <PARAM NAME="CONSOLE" VALUE="one"> <PARAM NAME="CONTROLS" VALUE="ImageWindow"> <PARAM NAME="BACKGROUNDCOLOR" VALUE="white"> <PARAM NAME="CENTER" VALUE="true"> </OBJECT>
|
在这个<OBJECT>标签中ID
参数定义了可以被VBScript引用的嵌入影片的信息。
通过它你可以利用VBScript或者浏览器支持的其他程序语言
来对嵌入的对象进行操作。接下来的例子就展示了一个简单的提供了播放、暂停和停止按钮来控制嵌入的方法:
<FORM> <input TYPE="button" VALUE="Play" NAME="doplay"> <script LANGUAGE="VBScript" FOR="doplay" EVENT="onClick"> RVOCX.DoPlay </script> <input TYPE="button" VALUE="Pause" NAME="pause"> <script LANGUAGE="VBScript" FOR="pause" EVENT="onClick"> RVOCX.DoPause </script> <input TYPE="button" VALUE="Stop" NAME="stop"> <script LANGUAGE="VBScript" FOR="stop" EVENT="onClick"> RVOCX.DoStop </script> </FORM>
|
利用VBScript接收回调
要通过VBScript接收回调,你需要使用<OBJECT>的ID,
这里的展示把它设置为RVOCX:
<OBJECT ID=RVOCX HEIGHT=256 WIDTH=256> CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" <PARAM NAME="controls" VALUE="all"> <PARAM NAME="SRC" VALUE="http://www.example.com/video1.rm"> </OBJECT>
|
然后使用<SCRIPT>标签来定义VBScript回调函数。
下面的例子定义了一个对于OnShowStatus的回调:
<P> Status Text: <input type="text" name="statusText" size=100><br> </P> <SCRIPT language="VBS"> Sub RVOCX_OnShowStatus(byVal text) statusText.Value=text End Sub </SCRIPT>
|
标签参数
本部分依字母顺序介绍可以用于<EMBED> 或者<OBJECT> 标签的参数。
在<EMBED>标签中参数的定义按下面的格式:
<EMBED SRC="..." WIDTH=... HEIGHT=... PARAMETER=value ... PARAMETER=value>
|
在<OBJECT> 标签下,参数按下面的格式:
<OBJECT ID=... CLASSID="..." WIDTH=... HEIGHT=...> <PARAM NAME="name" VALUE="value"> <PARAM NAME="name" VALUE="value"> ... </OBJECT>
|
AUTOGOTOURL
描述如何处理作品中嵌入的URL。
| 可能值: |
true|false |
| 默认值: |
true |
| 兼容性: |
RealPlayer 5或更高 |
AUTOGOTOURL设置为true表示
嵌入作品中所有的URL请求都被发送给浏览器,设置为false则是RealOne播放器通过
OnGotoURL回调把
URL发送给Java applet或者其他程序。
如果你在标签定义中没有包含这个参数,而你的作品中包含嵌入URL,则这些URL不被过滤而是发给浏览器。
AUTOSTART
描述是否自动播放作品。
| 可能值: |
true|false |
| 默认值: |
false |
| 兼容性: |
RealPlayer 5或更高 |
当AUTOSTART设置为true
表示影片在流式下载一些内容后就开始播放,而不需要用户专门的点击Play按钮。
如果利用了CONSOLE协调多个控制,则AUTOSTART只需要在一个
标签中进行设置。它的默认值是false,表示用户必须专门的点击Play按钮来开始播放。
 |
技巧:
如果利用RealPlayer
version 5.0或更高版本在Netscape中开发,你还可以利用SetAutoStart 方法随时
调整是否自动播放。
|
BACKGROUNDCOLOR
设置图像窗的背景颜色。
| 可能值: |
color_name|#RRGGBB |
| 默认值: |
black |
| 兼容性: |
RealPlayer G2或更高 |
背景颜色的描述使用了RGB十六进制颜色(#RRGGBB格式) 数或者颜色名字。
当作品中包含透明的区域时,背景颜色就显示在那个区域。
如果你的标签定义中没有包含
BACKGROUNDCOLOR 参数定义,则背景颜色被设置为black (默认)。下面的表是有效的背景颜色:
white (#FFFFFF) | silver (#C0C0C0) | gray (#808080) | black (#000000) |
yellow (#FFFF00) | fuchsia (#FF00FF) | red (#FF0000) | maroon (#800000) |
lime (#00FF00) | olive (#808000) | green (#008000) | purple (#800080) |
aqua (#00FFFF) | teal (#008080) | blue (#0000FF) | navy (#000080) |
CENTER
描述作品在图像窗口中按原始的尺寸居中显示。
| 可能值: |
true|false |
| 默认值: |
false |
| 兼容性: |
RealPlayer G2或更高 |
CENTER参数设置为true表示作品的中心和图像窗口的中心重叠,
而且高和宽都设置为原始大小(就是编码时设置的WIDTH 和 HEIGHT)。当CENTER省略或者设置为
false则表示作品自动的动态拉伸来填满整个图像窗口。
CLASSID
标示一个链接到RealPlayer的ActiveX控件类。
| 可能值: |
clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA |
| 默认值: |
(none) |
| 兼容性: |
只在利用ActiveX时有效,RealPlayer 5或更高 |
一个嵌入的播放器ActiveX控件必须在<OBJECT>标签中包含RealPlayer的classID值,
而且这个值必须使用双引号进行封闭定义:
<OBJECT ID=... CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" ... >
|
如果你在标签定义中没有包含这个参数定义或者包含了无效的值,
则浏览器就不能正确的加载你的作品,还会显示一个错误消息。
CONSOLE
描述多个控制可以像一个嵌入作品一样协同控制播放。
| 可能值: |
name|_master| _unique |
| 默认值: |
_unique |
| 兼容性: |
RealPlayer 5或更高 |
当在一个页面中有多个控件时一个相同的console名字可以让它们
像一个单独的嵌入作品一样进行协调的控制。例如你在页面中有分别的Play和Stop
按钮,通过相同的console名字你可以控制同一个作品的播放。下面是有效的console名字:
name |
一个用户定义的名字,它可以让一个控件和其他
有相同console名字的控件联系起来。例如:console1 |
_master |
一个预先确定的名字,
表示控件和页面中所有的控件相联系。 |
_unique |
一个预定义的名字,它表示这个控件不和页面中其他任何控件联系。 |
你可以为一个页面中不同的作品定义不同的console名字。
比如在一个页面中要显示两个影片,你把它们定义为不同的console名字video1
和video2。所有具有video1的console名字控件联系在一起,同样的
所有具有video2的console名字控件也联系在一起。
一个console名字video1的声音控制条就不能控制console名字video2的影片。
使用Console的技巧
- 每个
<EMBED>标签必须有一个SRC属性,通过console名字联系在一起的标签要有相同的SRC值。
- 如果通过console成组的
<EMBED>标签有不同的SRC 值,
则RealOne播放器在console组中找到的第一个有效的SRC作为这个组的SRC。
注意这不一定是列表的第一个标签。
- 点击一个播放按钮来开始播放一个被其他控件停止的影片。
它允许多个console来控制播放分离的音频轨道或者在使用相同的图像窗口播放。
多个控件的例子
接下来的例子设置了一个图像窗口和两组
对于不同视频(1.rm和2.rm)的控件设置(包含播放和停止按钮)。
预先设置的console名字_master指定给图像窗口,而且被链接到两组控制控件。
这些控制控件有不同的console名字,所以彼此是没有联系的,点击不同的播放按钮就可以开始不同的影片播放。
因为每个<EMBED>都必须要有一个SRC值,
而下面例子图像窗口的这个值是和第一组播放按钮相同的。用户可以简单的点击任意播放按钮来开始一段影片播放,而且
点击另一个播放按钮时会停止当前的播放而开始新的影片播放:
<EMBED SRC="video1.rpm" CONSOLE=_master WIDTH=176 HEIGHT=128 NOJAVA=true CONTROLS=ImageWindow>
|
<H4>Video 1</H4> <EMBED SRC="video1.rpm" CONSOLE=video1 WIDTH=44 HEIGHT=26 NOJAVA=true CONTROLS=PlayButton> <EMBED SRC="video1.rpm" CONSOLE=video1 WIDTH=26 HEIGHT=26 NOJAVA=true CONTROLS=StopButton>
|
<H4>Video 2</H4> <EMBED SRC="video2.rpm" CONSOLE=video2 WIDTH=44 HEIGHT=26 NOJAVA=true CONTROLS=PlayButton> <EMBED SRC="video2.rpm" CONSOLE=video2 WIDTH=26 HEIGHT=26 NOJAVA=true CONTROLS=StopButton>
|
CONTROLS
描述嵌入Web中的RealPlayer控制。
| 可能值: |
control_name |
| 默认值: |
All |
| 兼容性: |
RealPlayer 5或更高 |
在你的页面中可以为嵌入播放器加入很多控制,这包括了图像窗口,完整的控制面板,单个的按钮,滚动条和状态面板。
这些控制的完整列表参看"嵌入控制"。
HEIGHT
设置一个图像窗口或者单独的嵌入控制的高度。
| 可能值: |
pixels|percentage |
| 默认值: |
(none) |
| 兼容性: |
RealPlayer 5或更高 |
这个参数可以以象素值或者浏览器窗口百分比值来设置控件的高度。
设置WIDTH和HEIGHT参数的值为0意味着隐藏控件。
如果在定义图像窗口的标签中没有特别的定义这个参数,则窗口会以一个很小的图标出现,因为它不可以自适应流媒体作品的大小。
 |
注意:
所有嵌入控件必须要有一个width和
height。完整的控制列表参考"嵌入控制"部分。
|
ID
可以被VBScript用于识别嵌入作品的一个代号。
| 可能值: |
unique_ID |
| 默认值: |
(none) |
| 兼容性: |
ActiveX适用, RealPlayer 5或更高 |
如果你打算利用脚本来控制你的作品,
你必须为ID指定一个唯一的值,比如ID=RVOCX。
以后你就可以在<OBJECT>中确定你的作品了:
<OBJECT ID=RVOCX CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> <PARAM NAME="SRC" VALUE="file:/presentation.rpm"> <PARAM NAME="CONTROLS" VALUE="ImageWindow"> ... </OBJECT>
|
你可以使用VBScript或者任何其他浏览器支持的程序语言通过它来向RealPlayer发布命令控制作品了:
<FORM> <input TYPE="button" VALUE="Play" NAME="doplay"> <script LANGUAGE="VBScript" FOR="doplay" EVENT="onClick"> RVOCX.DoPlay </script> </FORM>
|
LOOP
描述当前播放完成后是否继续播放后续的作品或者loop播放当前的。
| 可能值: |
true|false |
| 默认值: |
false |
| 兼容性: |
RealPlayer G2或更高 |
当设置为true则影片会持续播放直到
用户专门的停止它。在利用了CONSOLE参数属性联系了多个控制时,只需要一个
标签中定义LOOP为true。
当LOOP设置为false或者没有在标签中定义这个参数,则作品在播放完一次后就停止。
MAINTAINASPECT
描述是否以保持影片高宽比的形式来放缩影片的显示以适应图像窗口。
| 可能值: |
true|false |
| 默认值: |
false |
| 兼容性: |
RealPlayer G2或更高 |
如果MAINTAINASPECT 参数被设置为true则保持影片外观比例不变的来放缩以适应
图像窗口的高或者宽,这时影片的中心和图像窗口的中心重叠,而上下线或者宽的两边和图像窗口的外边线重合。
如果多个控制由CONSOLE参数定义联系在一起,则只需要在一个标签中设置
MAINTAINASPECT为true。
如果MAINTAINASPECT 设置为false或者没有定义在标签中。则
影片会按图像窗口的尺寸进行调整以填满整个窗口,这样就有可能被拉伸而比例变形。
NAME
对嵌入控件描述一个名字以方便
利用Javascript进行引用控制。
| 可能值: |
name |
| 默认值: |
(none) |
| 兼容性: |
Netscape浏览器适用, RealPlayer 5或更高 |
为了在Javascirpt中引用一个嵌入的控件,你必须为
你的<EMBED>标签定义NAME参数,例如:
<EMBED NAME=my_name SRC="..." WIDTH=176 HEIGHT=132>
|
Javascript命令可以这样引用它:
<Input Type="button" Value="play" onClick="document.my_name.DoPlay()">
|
当在一个页面中有多于一个的嵌入控件实例时,或者
要方便访问每个不同的嵌入控制时,你需要为每个实例定义一个唯一的NAME值。
只有这样你才能在这么多实例中通过不同的名字有效的利用Javascript来操作个别的实例。
 |
警告!
在Netscape 4.x上你只有在 NOJAVA
没有设置为true时才能引用已命名的控件。
如果你的<EMBED>标签中包含NOJAVA=true定义,
则浏览器的Java虚拟机将不被启动。这样Javascript对控件的引用将是无效的。
|
NOJAVA
禁止Java虚拟机的启动(如果没有运行就不再启动),从而使得Javascript引用失效。
| 可能值: |
true|false |
| 默认值: |
false |
| 兼容性: |
Netscape 4.x 适用, RealPlayer G2或更高 |
在每个通过相同console名字联系在一起的标签中设置NOJAVA=true
可以防止JVM(Java虚拟机)的启动,这将使得这些已NAME(命名)的控件不能被Javascript引用。
当NOJAVA被设置为false或者这个参数没有在
你的控件定义标签中包含时,JVM会在启动,已NAME的控件可以被
Javascript引用(默认设置)。如果你不需要在你的应用中使用脚本控制,因为本章介绍的其他参数是不要求使用JVM的
,而JVM的启动会延迟作品的播放,所以推荐你设置NOJAVA=true 以加快作品播放的启动。
 |
注意:
无论你在使用<OBJECT>标签定义一个ActiveX控件或者在Netscape 6.0 中定义控件时是否设置NOJAVA
参数,它都不再起作用,因为IE和Netscape 6.0 在浏览器启动时就默认开始运行JVM了。
|
NUMLOOP
描述作品会被循环播放的次数。
| 可能值: |
整数值 |
| 默认值: |
(none) |
| 兼容性: |
RealPlayer G2或更高 |
如果NUMLOOP参数被设置,比如设置为2则作品
会被循环播放相应次数后再停止。如果你页面中有通过controle命名联系在一起的多个控件,你只需要在一个
定义标签中包含NUMLOOP设置。如果你在定义控件中没有包含NUMLOOP 参数指定(默认情况),
则由LOOP参数指定是否循环播放。
 |
注意:
如果 NUMLOOP和LOOP参数都被定义,或者对应的设置方法
(SetLoop 和
SetNumLoop)都被使用,
则LOOP 参数定义或者对应的设置方法被忽略。即使
NUMLOOP被设置为0也是这样的。
|
PARAM
被用于描述通过<OBJECT> 标签定义的ActiveX控件的附加参数定义。
| 可能值: |
除NAME外任何有效的参数名, |
| 默认值: |
(none) |
| 兼容性: |
ActiveX控件适用,RealPlayer 5或更高 |
利用PARAM描述附加参数定义的语法如下:
<PARAM NAME="name" VALUE="value">
|
语法中NAME 变量可以被设置为本章介绍的除
NAME参数(为了描述一个通过
<OBJECT> 标签定义的控件的引用名字,你需要使用ID参数来替代。)
外的所有可用参数名。
而VALUE变量的值可以是所有对应与NAME变量值的参数名可用的值。
PREFETCH
允许或者禁止PREFETCH播放方式,它控制RealPlayer
在开始正式播放前是否获取流媒体的描述信息。
| 可能值: |
true|false |
| 默认值: |
false |
| 兼容性: |
RealPlayer 5或更高 |
如果设置PREFETCH为true,你可以在播放前获取作品的
描述信息,并利用这些信息来调整播放特性。当嵌入播放器判断预取播放模式是可用的,则会
获得这个作品的流媒体描述信息,此后OnPreFetchComplete
会被返回给控件(plug-in或者ActiveX控件),并且作品被暂停播放。
例如,在作品描述信息被获取后,你可以
通过GetClipWidth和
GetClipHeight找到嵌入影片的尺寸。
你可以动态的以影片原始尺寸创建利用<EMBED>或<OBJECT>标签创建嵌入窗口了。
也就是WIDTH和HEIGHT
参数可以按影片进行设置。
 |
注意:
SMIL 2.0 包含的<prefetch/>标签和这里的PREFETCH参数是不相干的。
SMIL标签让你在影片播放前下载定义的所有或者部分影片的流数据 ,而这里的
PREFETCH参数仅仅是获得流的描述。更多内容参看《RealNetworks产品指南》(RealNetworks Production Guide)
的SMIL预取部分。
|
REGION
指定一个ImageWindow控件为定义在SMIL中的某些影片提供播放显示。
| 可能值: |
SMIL_region_name |
| 默认值: |
(none) |
| 兼容性: |
RealPlayer G2或更高 |
这个参数仅仅被用于嵌入SMIL类型作品而且你
想在作品中的某些影片需要独立的显示在单独的图像窗口的情况。
这个参数不是在使用唯一的图像窗口来显示整个SMIL作品进行嵌入Web页面的必要参数,
在这种情况下,你只需要把SMIL看着一个单独的影片,你只要把它嵌入到和SMIL文件显示高宽
(它定义在SMIL文件的<root-layout/>标签中)
一样的(或者更大的)图像窗口就可以了。
在SMIL作品中的影片通常显示在SMIL文件头定义的
布局位置上。当你嵌入作品中的影片到不同的图像窗口时,虽然你可以省略SMIL的布局信息,
但你仍然要在你SMIL文件中每个虚拟影片中包含region属性以保证该
影片能定位到合适的SMIL布局中。例如一个SMIL中的RealText影片定义如下:
<textstream src="newsarticle.rt" region="article_region " .../>
|
为了把newsarticle.rt嵌入到指定的图像窗口,
你需要在Web页面中利用CONTROLS=ImageWindow和REGION参数定义一个播放布局,
下面这个例子中我们使用的是Netscape插件方式:
<EMBED SRC="http://helixserver.example.com:8080/ramgen/newspaper.smil?embed" WIDTH=176 HEIGHT=132 NOJAVA=true CONTROLS=ImageWindow REGION=article_region>
|
下面的例子是对应的ActiveX控件方式:
<OBJECT ID=RVOCX CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" WIDTH=176 HEIGHT=132> <PARAM NAME="SRC" VALUE="http://helixserver.example.com:8080/ramgen/newspaper.smil"> <PARAM NAME="CONTROLS" VALUE="ImageWindow"> <PARAM NAME="REGION" VALUE="article_region"> </OBJECT>
|
你可以定义相似的<EMBED>或者<OBJECT>标签来
为SMIL文件建立布局。这种情况下,所有的<EMBED>或者<OBJECT>
标签中SRC
参数指向同一个SMIL文件。
 |
更多信息:
关于SMIL的更多内容,参看最新的《RealNetworks产品指南》(RealNetworks Production Guide),
该指南中Web页面嵌入章节 有关于这个主题的更多内容,
而且还包括一些嵌入的SMIL作品例子。
|
SCRIPTCALLBACKS
在一个逗号分割的列表中描述需要执行的回调行为。
| 可能值: |
callback_name|All |
| 默认值: |
(none) |
| 兼容性: |
Netscape 6.0 适用, RealPlayer 5或更高 |
SCRIPTCALLBACKS在Netscape 6.0 中指定你希望捕获的回调行为。
每个指定行为通过逗号分割列入一个列表中:
SCRIPTCALLBACKS=OnPresentationOpened,OnPresentationClosed
|
可以包含所有列在手册的Chapter 7中的行为,或者你用
All表示要捕获所有的行为。
SHUFFLE
指定在作品中所有还没有播放过的影片按随机顺序进行播放。
| 可能值: |
true|false |
| 默认值: |
false |
| 兼容性: |
RealPlayer G2或更高 |
SHUFFLE参数设置为true,则作品中所有还未播放过的影片
将按随机顺序播放,而不再按在文件中原有列出顺序了。
这个参数可以用于多影片的RAM文件(.ram
或.rpm)或者只包含多个影片序列的SMIL文件作品。
当设置为false或者不定义它,则影片的播放顺序按文件中列出的顺序。
SRC
指定链接到用于播放的.rpm文件或者其他作品文件的URL。
| 可能值: |
URL |
| 默认值: |
(none) |
| 兼容性: |
RealPlayer 5或更高 |
URL可以rtsp://, http://, pnm://或者file://
等协议头开始。一个完整的URL必须放置在双引号中。
URL中任何目录或文件名中不能包含空格,确切的说是空字符需要采用URL编码方法进行处理,即利用
%20表示空格符。
使用TYPE参数
SRC参数在定义标签已经像下面一样包含定义了
mime TYPE参数时可以被省略:
<EMBED WIDTH=176 HEIGHT=132 TYPE="audio/x-pn-realaudio-plugin">
|
但是,为了不出错,更好的方法是
一直设置SRC参数,最低可以仅仅提供一个内容为空的作品文件名。
为Netscape插件指定播放源
你需要为每个<EMBED>标签都指定SRC参数,
即使当嵌入的控件是作为一个RealOne播放器控制时(例如一个Play按钮),而不是一般的影片。
你最好不要直接为SRC指定一个影片或者SMIL文件作为参数值,而是用以.rpm为扩展名的
Ram文件来间接指定。
<EMBED SRC="http://www.example.com/presentation.rpm" WIDTH=176 HEIGHT=132>
|
这是因为以.rpm为扩展名的文件可以使得
浏览器把RealOne播放器用作辅助程序,而不是直接的作为一个独立的程序启动(译者注:根据试验,这里的描述可能是不正确的,
在嵌入播放中直接使用影片或者SMIL文件而不经用Ram文件包装也不会打开多余的程序进程。
不过这样包装也是可以起到相对隔离隐藏正式地址的好处,此外如后文所述在开发中也可能获得便利)
。以.rpm为 扩展名的文件只是一个包含完整影片或者SMIL获取URL地址的纯文本文件:
rtsp://helixserver.example.com/video1.rm
|
 |
更多信息:
Ram文件描述语法参看《RealNetworks产品指南》(RealNetworks Production Guide)中
作品发布章节。
|
开发中的作品
这里有一个简单的方法使得在与Web页面处于相同目录下的Ram文件,
在桌面电脑进行开发时和正式发布后嵌入作品的SRC地址保持相对稳定。
你可以在<EMBED>标签中链接目录下同一个.rpm文件:
<EMBED SRC="presentation.rpm" WIDTH=300 HEIGHT=134>
|
为了链接单独的视频,如.rpm文件中简单包含指向影片的一个本地URL地址(当然file://协议头是需要的):
 |
警告!
为了在Netscape中正常的嵌入播放,在服务器上或者
本地电脑的.rpm文件路径中要避免出现空格或者空格的等效代码(%20)。
这将导致Navigator 6 去搜寻一个无效的插件。
|
作品发布时
在你准备把你开发完成的作品发布给你的用户时,
你需要把文件移动到各自的服务器上并对一些文件的URL按下面情况进行调整:
- 保持
.rpm和Web页面文件在一起
如果打算保持.rpm文件和Web文件在一起,你不需要改变<EMBED>标签中SRC的值。
你只需要简单的把.rpm和你的Web页面文件放置在服务器上相同的目录。
- 把
.rpm 文件与Web页面文件放置在不同的位置
如果你把.rpm文件放置在与Web页面文件不同的目录下,你
需要为每个<EMBED>标签中的SRC参数指定指向.rpm文件的完整HTTP URL:
SRC="http://www.example.com/media/presentation.rpm"
|
- 链接到流媒体影片
不管怎样把.rpm文件和影片按什么关系放置,你都需要编辑
.rpm文件来指向需要嵌入的影片或者SMIL文件的完整格式URL。
如果你的影片或者SMIL文件在Web服务器上,你需要使用HTTP URL。
如果是在Helix Server则使用RTSP URL。
 |
技巧:
即使所有文件和影片都在Web服务器的同一个目录下也最好在.rpm文件中使用完整的URL。
RealOne播放器使用.rpm来定位影片或者作品。
如果不是完整格式的URL,RealOne播放器必须利用定位的常规Web页面地址URL和在.rpm文件中的地址信息来构造
最终的访问地址,这样是容易发生错误的。
|
 |
更多信息:
关于RTSP协议的更多内容,比如了解利用Helix Server的Ramgen特性来不使用
.rpm文件参看《RealNetworks产品指南》(RealNetworks Production Guide)的作品发布章节部分。
|
- 链接本地影片
如果你的作品仅仅是想用户在本地计算机上播放(通过下载或者在CD上),你不需要对
在"开发中的作品"中定义的
作品进行URL调整。非常少见的是你想在.rpm文件中完全采用绝对链接而不是采用相对链接,
就要采用使用了正斜杠的"Web样式"的例如:
file://c:\media\presentation.rpm
|
路径中以正斜杠分割目录,并像file:///使用包含了三个正斜杠如的URL会更稳定:
file:///c:/media/presentation.rpm
|
为ActiveX指定播放源
对于ActiveX控件,<OBJECT>标签的
CLASSID参数使得作品会在Web页面中播放,所以可以简单的在
<OBJECT>标签中链接SMIL文件或者影片文件,而不需要用以.rpm为扩展名的Ram文件
作为间接链接:
<OBJECT ID=RVOCX CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"...> <PARAM NAME="SRC" VALUE="rtsp://helixserver.example.com/video1.rm"> ... </OBJECT>
|
TYPE
指示描述在SRC
作品的MIME类型。
| 可能值: |
MIME type |
| 默认值: |
(none) |
| 兼容性: |
RealPlayer 5或更高 |
指定MIME类型典型语法如下:
<EMBED SRC="http://.../.../presentation.rpm" WIDTH=176 HEIGHT=132
TYPE="audio/x-pn-realaudio-plugin">
|
浏览器会首先读取MIME类型值以决定正确的插件来嵌入你的作品。
如果标签中没有定义这个参数,可能导致浏览器不能正确的
选择插件来播放你的作品。
 |
注意:
虽然在TYPE参数被指定后SRC参数定义可以在标签定义中省略,但这
可能造成意料外的错误,所以为了安全起见,最好是一直包含SRC参数,至少为此指定
一个没有实际内容的文件也好。
|
WIDTH
设置图像窗口或者嵌入控制的宽度。
| 可能值: |
pixels|percentage |
| 默认值: |
(none) |
| 兼容性: |
RealPlayer 5或更高 |
设置HEIGHT和WIDTH
参数为0使得控件被隐藏。如果你在定义图像窗口时省略了这些参数定义,则窗口会显示一个最小的图标,
因为窗口是不能自动适应流媒体作品尺寸的。
 |
注意:
所有的嵌入控制都有一个推荐的宽和高。完整的嵌入控制列表参看"嵌入控制"部分。
|
嵌入控制
通过CONTROLS参数,你可以
添加如 播放、暂停按钮之类的控制。用户可以像使用独立的RealOne播放器一样
控制播放。例如下面的例子标签就使用<EMBED>标签参数在页面中添加了play/pause按钮:
<EMBED SRC="presentation.rpm" WIDTH=26 HEIGHT=26 NOJAVA=true CONTROLS=PlayButton CONSOLE="one">
|
使用<OBJECT>标签加入ActiveX控件的方法如下:
<OBJECT ID=RVOCX CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" WIDTH=26 HEIGHT=26> <PARAM NAME="CONTROLS" VALUE="PlayButton"> <PARAM NAME="CONSOLE" VALUE="one"> </OBJECT>
|
 |
注意:
当你要在Web页面加入多个控件控制时,你需要通过CONSOLE参数设置
这些控件的相互关系。
|
下面的部分就依控件名字字母顺序
介绍了所有可用的嵌入控件控制。
你可以在<EMBED>或者<OBJECT>的WIDTH和
HEIGHT中设置控制的大小。如果设置的大小与下面介绍推荐的大小不相同,则对应的
控件显示会被放大或者缩小。你也可以采用百分比数来设置,不过通常这种方式只适应于设置图像窗口。
 |
技巧:
除了特别指出,所有下面列出的RealOne播放器控件控制都同时兼容于RealPlayer G2,RealPlayer 7,
和RealPlayer 8 。但是在这些版本中最终显示的外观样式可能是不相同的。
|
All
CONTROLS=All参数定义显示了一个
基本的RealOne播放器控件面板。
这个控制名称也是"默认"的。
它包含了play/pause(播放/暂停),stop(停止),
fast-forward(快进)和rewind(后退)功能。还包含了一个定位滚动条和一个含有禁音按钮的弹出声音控制滚动条。
此外它还包含一个影片信息显示区,一个状态面板,一个网络拥塞指示和影片时间显示区。
如果你设置的尺寸小于
推荐值,则包含的某些面板区域可能被省去,此外所有的区域会被挤压以适应你设置的值。
这样可以方便为小的弹出窗口添加控件,毕竟没有这些控制对某些用户来说是比较困难的。
这只为RealOne播放器采用,而更早的RealPlayer版本可能不兼容(译者注:这主要是指
下面的根据不同的宽高设置省略不同的面板区域的特性)。
| Width小于336象素: |
网络阻塞指示被省略 |
| Width小于306象素 |
影片时间显示区域被省略 |
| Width小于226象素: |
Clip Info标签,以及后退和前进按钮被省略 |
| Width小于174象素: |
RealOne logo被省略 |
| Height小于81象素 |
clip信息显示区被省略 |
ControlPanel
CONTROLS=ControlPanel将显示一个完整的RealOne播放器控制面板。
它包含了play/pause,stop,fast-forward和rewind按钮以及一个定位滚动条和一个含有禁音按钮的弹出声音控制滚动条。
如果你设置的尺寸小于
推荐值,则包含的某些面板区域可能被省去,此外所有的区域会被挤压以适应你设置的值。
这只为RealOne播放器采用,而更早的RealPlayer版本可能不兼容(译者注:这主要是指
下面的根据不同的宽高设置省略不同的面板区域的特性)。
| Width小于220象素: |
rewind和fast-forward按钮被省略 |
| Width小于168象素: |
RealOne logo被省略 |
FFCtrl
CONTROLS=FFCtrl定义一个fast-forward按钮。
HomeCtrl
CONTROLS=HomeCtrl显示一个RealOne播放器logo,它链接到RealNetworks的Web站点。
而更早版本则显示Real logo。
ImageWindow
CONTROLS=ImageWindow显示一个用于播放的窗口。
对于纯音频作品它是不需要的。在页面中没有其它控件控制的情况下,用户可以在这个窗口区域中
按鼠标右键(Windows环境)或者持续按下鼠标键(在Macintosh环境)来打开一个菜单进行Play和Stop
之类的控制。
| 推荐宽度象素: |
176 or greater |
| 推荐高度象素: |
132 or greater |
InfoPanel
CONTROLS=InfoPanel会显示一个作品信息面板。了解更多相关内容参看
RealNetworks产品指南(RealNetworks Production Guide)的 作品信息部分。
InfoVolumePanel
CONTROLS=InfoVolumePanel会显示一个附带声音控制滚动条和禁音按钮的
作品信息面板。了解更多相关内容参看
RealNetworks产品指南(RealNetworks Production Guide)的 作品信息部分。
MuteCtrl
CONTROLS=MuteCtrl 会单独显示一个禁音按钮。
MuteVolume
CONTROLS=MuteVolume 会显示一个禁音按钮和一个声音控制滚动条。
PauseButton
CONTROLS=PauseButton单独显示一个暂停按钮。
因为PlayButton会在作品播放中转换成一个暂停按钮,
所以对于RealOne播放器来说通常是不需要PauseButton 的,
但为了确保对早期版本RealPlayer的兼容性,所以提供了它,因为它们需要同时
定义PlayOnlyButton 和PauseButton 。
PlayButton (也作 PlayOnlyButton)
CONTROLS=PlayButton显示一个播放按钮。
它在作品播放时会自动转换成暂停按钮。如果你的作品需要用于RealOne播放器的早期版本RealPlayer,
则你需要使用CONTROLS=PlayOnlyButton进行替代。在早期的RealPlayer系列中,PlayButton
同时包含了播放和暂停按钮。而 PlayOnlyButton仅仅会显示播放按钮。
因此使用PlayOnlyButton会更好的保持向后兼容性。
PositionField
CONTROLS=PositionField 显示一个定位信息显示区。
它显示当前影片的播放时间点和影片的总长度。
PositionSlider
CONTROLS=PositionSlider参数显示一个影片定位滚动条。
RWCtrl
CONTROLS=RWCtrl显示一个后退按钮。
StatusBar
CONTROLS=StatusBar 显示状态面板,它显示一些消息。
这包括网络拥塞制作和定位显示区(它显示当前影片的播放时间点和影片的总长度)。
如果你设置的宽度小于status bar推荐的宽度,则在RealOne播放器中
一些面板会被省略,但早期版本不会;
| Width小于330象素: |
网络拥塞指示被省略 |
| Width小于300象素: |
影片时间显示区被省略 |
 |
注意:
状态条被包括在All控制中。如果你的页面中没有嵌入一个状态条或者状态区,
则错误消息会显示在浏览器的状态条中。
|
StatusField
CONTROLS=StatusField 显示状态条中显示消息文本的区域。
如果你的页面中没有嵌入一个状态条或者状态区,
则错误消息会显示在浏览器的状态条中。
StopButton
CONTROLS=StopButton 显示一个停止按钮。
TACCtrl
CONTROLS=TACCtrl 显示一个信息区。在第一次播放时
影片或者作品的信息会在这个区域中垂直卷动显示。
用户可以点击箭头按钮来重新显示这些信息。
而点击"i"按钮会在一个弹出窗口中完整显示作品信息。
在RealOne播放器中,如果你设置的TACCtrl宽度小于220象素则Clip Info区域被省略。
 |
更多信息:
参看 《RealNetworks产品指南》(RealNetworks Production Guide)的影片或者作品信息部分以了解更多。
|
VolumeSlider
CONTROLS=VolumeSlider显示一个声音控制滚动条。
|
©2002 RealNetworks, Inc.版权所有。xdsnet(xdsnet ◎ gmail)独立汉化(Ver:1.0.0 最后更新2007.2.21)。
更多信息请访问RealNetworks
点这里处理看不见左侧目录的情况。
|