这样为什么没有视频?
1<embed autostart="true" border="1" controls="statubar,controlPanel" height="400" src="lucky.rm" type="audio/x-pn-realaudio-plugin" width="500"/>
---------------------------------------------------------------
一、插入RealPlayer ActiveX对象(如果要进行测试,需要先安装RealPlayer播放器)
假定以下代码包含在video.php文档中(该文件将在主页面中通过
1<iframe>进行链接)。 <object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" height="250" width="320">
2<param name="CONTROLS" value="ImageWindow"/>
3<param name="CONSOLE" value="Video"/>
4<param name="CENTER" value="TRUE"/>
5<param name="MAINTAINSPECT" value="TRUE"/>
6</object> //定义播放界面
7
8<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" height="30" width="320">
9<param name="CONTROLS" value="StatusBar"/>
10<param name="CONSOLE" value="Video"/>
11</object> //定义状态栏
12
13<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" height="30" width="320">
14<param name="CONTROLS" value="ControlPanel"/>
15<param name="CONSOLE" value="Video"/>
16<param name="SRC" value="```
17 echo getsrc();
18```"/>
19<param name="AUTOSTART" value="TRUE"/>
20<param name="PREFETCH" value="0"/>
21<param name="LOOP" value="0"/>
22<param name="NUMLOOP" value="0"/>
23</object> //定义控制面板
24
25其中,CONTROLS参数用来指定播放器的控件外观,可以用多个控件进行组合,并通过CONSOLE参数进行关联。
26
27有关param参数,读者可以参阅RealPlayer官方网站http://service.real.com/help/library/guides/production/htmfiles/control.htm。
28
29这里的SRC参数尤为重要,用来指定视频流文件的URL地址。这里笔者使用PHP代码的方法动态的指定SRC,读者也可以使用其它如ASP,或完全通过 JavaScript 实现。
30
31
32二、使用DHTML动态控制RealPlayer控件的播放
33
34小技巧:<iframe>的妙用。由于为RealPlayer控件指定新的SRC需要刷新页面,使用<iframe>可以把RealPlayer控件嵌入到单独的页面中,这样,动态刷新就是在<iframe>内进行,不会影响用户观看页面其它内容。
35
36以下代码包含在主页面中:
37
38<iframe frameborder="0" height="345" id="iVideo" scrolling="no" src="video.php" width="500">
39</iframe>,其中,video.php文件用力显示RealPlayer控件。
40
41
42下面我们加入简单的JavaScript 代码用来控制视频的播放。
43
44<script language="JavaScript">
45
46function play(filename){
47
48top.document.all("iVideo").src = "video.php?src="+filename;
49
50} // iVideo 是刚刚定义的IFRAME 的标识符
51
52</script>
53
54我们可以使用javascript控制RealPlayer插件更复杂的功能,如提取视频的长宽、测试用户的网络速率、自定义播放事件等等。关于RealPlayer ActiveX开发的具体细节,请参阅RealPlayer官方网站http://service.real.com/help/library/guides/extend/embed.htm。
55
56我们假设有一个视频文件,其URL为http://YourURL/filename.ram,那么我们就可以这样定义:
57
58<a href="JavaScript:play('http://YourURL/filename.ram')">文件1</a>,如果文件是在本地,URL也可以为相对路径。
59
60
61三、检测用户是否安装RealPlayer播放器
62
63在页面的<head></head>部分加入以下JavaScript代码,用以检测用户是否安装RealPlayer播放器:
64
65<script language="JavaScript">
66
67<!--
68
69var RealMode=0;
70
71var RealPlayer5=0;
72
73var RealPlayer4=0;
74
75var RealPlayerG2=0;
76
77
78if (navigator.userAgent.indexOf("MSIE")< 0 ){
79
80numPlugins = navigator.plugins.length;
81
82for (i = 0; i < numPlugins; i++){
83
84plugin = navigator.plugins[i];
85
86if (plugin.name.substring(0,10)=="RealPlayer"){
87
88RealMode=1;
89
90}
91
92}
93
94}
95
96// 以下代码通过VBScript的CreateObject()函数动态的创建RealPlayer对象
97
98document.write('<SCRIPT LANGUAGE=VBScript\> \n');
99
100document.write('on error resume next \n');
101
102document.write('RealPlayerG2 = (NOT IsNull(CreateObject("rmocx.RealPlayer G2 Control")))\n');
103
104document.write('RealPlayer5 = (NOT IsNull(CreateObject("RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)")))\n');
105
106document.write('RealPlayer4 = (NOT IsNull(CreateObject("RealVideo.RealVideo(tm) ActiveX Control (32-bit)")))\n');
107
108document.write('</SCRIPT\> \n');
109
110if ( RealPlayerG2 ¦ ¦ RealPlayer5 ¦ ¦ RealPlayer4 ){
111
112//可以在此处添加<object>对象
113
114}else if ( RealMode ){ // NetScape浏览器用户
115
116// 可以在此处加入<embed>对象
117
118}else{
119
120window.location.replace("install.htm"); // 转入install.htm页面指导用户进行安装
121
122}
123
124\-->
125
126</script>
127
128
129至此,我们已经实现了一个基于Web的视频点播的基本功能。但我们要想把功能做的更完美一些,还需要其它更复杂的考虑。如流媒体的制作、网页美工的设计、网络流速的考虑,以及网站视频文件的有效组织。这些话题已经超出了本文的讨论范围,请读者自行参考相关资料。</iframe></iframe></iframe></iframe>