网络编程
位置:首页>> 网络编程>> Asp编程>> 嵌入式Web视频点播系统实现方法(3)

嵌入式Web视频点播系统实现方法(3)

作者:tttk 来源:动网 发布时间:2007-10-10 21:17:00 

标签:RealPlayer,嵌入式,流媒体,视频,DHTML,VOD


二、使用DHTML动态控制RealPlayer控件的播放

小技巧:<IFRAME>的妙用。由于为RealPlayer控件指定新的SRC需要刷新页面,使用<IFRAME>可以把RealPlayer控件嵌入到单独的页面中,这样,动态刷新就是在<IFRAME>内进行,不会影响用户观看页面其它内容。

以下代码包含在主页面中:


<IFRAME id="iVideo" SRC="video.php" Width=500 Height=345 frameborder=0 SCROLLING="no">
</IFRAME>

其中,video.php文件用力显示RealPlayer控件。



下面我们加入简单的JavaScript 代码用来控制视频的播放。


<script language="JavaScript">
function play(filename){
top.document.all("iVideo").src = "video.php?src="+filename;
} // iVideo 是刚刚定义的IFRAME 的标识符
</script>


我们可以使用javascript控制RealPlayer插件更复杂的功能,如提取视频的长宽、测试用户的网络速率、自定义播放事件等等。关于RealPlayer ActiveX开发的具体细节,请参阅RealPlayer官方网站http://service.real.com/help/library/guides/extend/embed.htm。

我们假设有一个视频文件,其URL为http://YourURL/filename.ram,那么我们就可以这样定义:

<a href="JavaScript:play('http://YourURL/filename.ram')">文件1</a>,如果文件是在本地,URL也可以为相对路径。


三、检测用户是否安装RealPlayer播放器

在页面的<head></head>部分加入以下JavaScript代码,用以检测用户是否安装RealPlayer播放器:



<SCRIPT LANGUAGE=JavaScript>
<!--
var RealMode=0;
var RealPlayer5=0;
var RealPlayer4=0;
var RealPlayerG2=0;
if (navigator.userAgent.indexOf("MSIE")< 0 ){
numPlugins = navigator.plugins.length;
for (i = 0; i < numPlugins; i++){
plugin = navigator.plugins[i];
if (plugin.name.substring(0,10)=="RealPlayer"){
RealMode=1;
}
}
}
// 以下代码通过VBScript的CreateObject()函数动态的创建RealPlayer对象
document.write(’<SCRIPT LANGUAGE=VBScript\> \n’);
document.write(’on error resume next \n’);
document.write(’RealPlayerG2 = (NOT IsNull(CreateObject("rmocx.RealPlayer G2 Control")))\n’);
document.write(’RealPlayer5 = (NOT IsNull(CreateObject("RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)")))\n’);
document.write(’RealPlayer4 = (NOT IsNull(CreateObject("RealVideo.RealVideo(tm) ActiveX Control (32-bit)")))\n’);
document.write(’</SCRIPT\> \n’);
if ( RealPlayerG2 || RealPlayer5 || RealPlayer4 ){
//可以在此处添加<object>对象
}else if ( RealMode ){ // NetScape浏览器用户
// 可以在此处加入<embed>对象
}else{
window.location.replace("install.htm"); // 转入install.htm页面指导用户进行安装
}
-->
</Script>


至此,我们已经实现了一个基于Web的视频点播的基本功能。但我们要想把功能做的更完美一些,还需要其它更复杂的考虑。如流媒体的制作、网页美工的设计、网络流速的考虑,以及网站视频文件的有效组织。这些话题已经超出了本文的讨论范围,请读者自行参考相关资料。

0
投稿

猜你喜欢

  • 为什么我把自己机子上的数据库备份文件往另一台机子上还原不成功?可能是你在Restore的对话框中选项不正确。Restore 有三个选项,分别
  • SQL Server 2008已经发布,我们可以看到它在各方面都有了显著的进步,这些让人侧目之处和失望之处都有可能极大地影响大型企业的采购意
  • 最近经常使用字符串查找功能。 包括 1、全匹配查找字符串 2、模糊查找字符串 CHARINDEX 和 PATINDEX 函数都返回指定模式的
  • 首先,了解下原理。1,提供文本框进行查询内容的输入2,将查询信息提交页面程序处理3,程序页主要作用:接受查询信息,根据此信息调用特定的SQL
  • 按照惯例,年底的淘宝的确是到了“需要改版的时候”。这次新版的淘宝首页上线,乍看并没有多少夺人眼球的地方,但仔细揣摩其中的细节,还是发现了不少
  • 各位想必都知道,onfocus="this.blur()"这条代码能消除链接时的虚线框,但你有没有想过,如果你的网页上有
  • 前段时间跟这suggest项目走,没想到这么一个小小的输入框居然会带来那么多的问题。首先来比较一下几个主流的搜索引擎的suggest效果。为
  • background-clip 和 background-origin 是 CSS3 中新加的 background module 属性,用
  • 如何只取数据库的前3条记录?怎么控制只取得前3行数据    这要看是什么类型的数据库了,对于Access和SQ
  • 我的工作内容可以说是五花八门,策划、文案、设计(包括平面设计、网站设计、VIS设计)、前端代码、交互、测试、摄影、项目管理等。所有这些工作最
  • vbscript脚本中,fso对象CreateTextFile方法调用时可能会报“无效的过程调用或参数”错误,在使用ASP生成静态页面时,如
  • Sun公司和Zmanda在3月18号声称他们正在一起合作,为MySQL Enterprise用户交付一种全面、全局数据备份与恢复解决方案。现
  • 有很多种方法来实现图片的预加载,通常大部分使用Javascript让事情滚动。不要再受Javascript预载的束缚了吧,用CSS你就可以毫
  • 虽然以前我写过IE6、IE7、IE8共存的解决方案,但是看到IETester这个软件以后那些都已经没有意义了(那些办法副作用比较大,而且实现
  • 简介你手中的这本《JavaScript王者归来》不仅是一本传播知识的书,更是一本求道的书。本书分为五个部分循序渐进地与读者讨论了JavaSc
  • 如何使用ADO 2x Command 对象读取数据?具体的读数据代码如下:Cmd = CType(EC.Example1
  • 某天和一个产品经理聊起:以用户为中心是一个理想概念。经历了太多的项目,看到了太多的限制条件。而我向来不是一个有着设计洁癖的完美主义者。做为所
  • :hover是我们在CSS设计中最常运用的伪类之一,许多绚丽效果的实现离不开伪类:hover,比如我们常见的纯CSS菜单、相册效果等等。或许
  • 奥运来了,三大门户网站都加上了奥运主题。加上下面代码你的网站也拥有奥运主题了:<style type="text/
  •     不知道算不算DW4的大BUG. DW4实际的运行如下: 读注册表中HKEY_CURRENT_USER/
手机版 网络编程 asp之家 www.aspxhome.com