嵌入式Web视频点播系统实现方法(3)
作者:tttk 来源:动网 发布时间:2007-10-10 21:17:00
二、使用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的视频点播的基本功能。但我们要想把功能做的更完美一些,还需要其它更复杂的考虑。如流媒体的制作、网页美工的设计、网络流速的考虑,以及网站视频文件的有效组织。这些话题已经超出了本文的讨论范围,请读者自行参考相关资料。


猜你喜欢
- 本文实例为大家分享了java正则表达式工具类的具体代码,供大家参考,具体内容如下import com.google.common.base.
- bootstrap自带的响应式导航栏是向下滑动的,有时满足不了个性化的需求,需要做一个类似于android drawerLayout 侧滑的
- 本文实例讲述了Python中bisect的用法,是一个比较常见的实用技巧。分享给大家供大家参考。具体分析如下:一般来说,Python中的bi
- 这篇文章主要介绍了python 采用paramiko 远程执行命令及报错解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 我想此时不妨使用字符串参数来帮助我们解决这种情况,利用字符串分割的方法将一个参数分割成数个参数来解决。下面我们看一个例子: 假设现在给你一个
- 一、安装1.从官网下载Linux版的Pycharm官网链接:https://www.jetbrains.com/pycharm/downlo
- 安装方法一:①进入python文件夹执行指令(前提是支持pip指令):pip3 install Beautifulsoup4②回车待安装完成
- 本文实例讲述了python中的闭包用法。分享给大家供大家参考。具体分析如下:什么是闭包?简单说,闭包就是根据不同的配置信息得到不同的结果再来
- 本文实例分析了Flask和Django框架中自定义模型类的表名、父类相关问题。分享给大家供大家参考,具体如下:一. Flask和Django
- 目的: 找出路径坐在的所有python文件(.py结尾),返回列表。代码:def list_py(path = None): if path
- python监控某个进程内存测试场景:某个客户端程序长时间运行后存在内存泄漏问题,现在开发解决了需要去验证这个问题是否还存在,并要求出具相应
- asp之家注:学习javascript(js),免不了要用到打开新窗口,方法很多,总的来说是使用window.open。不同与HTML中的t
- 在开发数据库应用中,经常会遇到处理时间的问题,如查询指定时间的记录等。下面就这些常见的问题,结合自己的一些经验,和大家探讨一下这类问题。首先
- 1. 自己用python写了一个签到脚本经过测试已经可以成功打卡,于是研究了一下windows定时运行程序2. 创建定时任务2.1 打开“控
- 今天写的代码片段:X = Y = []..X.append(x)Y.append(y)其中x和y是读取的每一个数据的xy值,打算将其归入列表
- 本文实例讲述了Python实现的将文件每一列写入列表功能。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-#!
- 目录引入依赖配置构建实体类保存数据查询数据项目中需要存放大量设备日志,且需要对其进行简单的数据分析,信息提取工作.结合众多考量因素,项目决定
- 前言:我们知道,python代码文件大多数都是py类型。那么,能不能使用txt文件存储我们的代码呢?python这么强大的语言当然可以做大,
- 现在看小说已经有了听书这个功能了,但是有时候你想看的书的听书功能收费,这时候可能大家就只能老老实实选择看或者付费听。(还能拿来练英语听力欸嘿
- enumerate函数用于遍历序列中的元素以及它们的下标。enumerate函数说明:enumerate()是python的内置函数enum