在线视频点播系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
目前,网络的发展日新月异,尤其是许多的校园网,小区宽带网、企业或者政府机关内部网的建设已经可以满足人们对带宽的需求。

于是人们不再满足于单调的文字或者图象,而希望能在网上传输视频。

本论文介绍的在线宽带点播系统,属于在线看视频类网站。

管理员可以通过系统为用户提供在线收看视频的服务;用户可以通过注册帐号、登陆后便可以在线收看视频。

关键词:视频点播、数据库、模块化、信息显示
Abstract
Currently, the shape of the network change with each passing day, particularly many campus toils, small zone broad - bond electrical noise toil, business or the government agency construction of the inner toil has already can satisfy the people's demand to the belt width.Hereupon people no longer the character of the contented with monotone or portrait, but hope to deliver the video on the toil.
The on-line broad - bond electrical noise dot that this thesis recommend sows the system, pertaining the on line to look the video website.The intendant can pass the system to tender the service that the on line watches the video for the consumer;After consumer can pass to reg. the account number, landing can watch the video with the on line then.
Keyword:Video on Demand,Database, Modularization, Information Show
第一章视频点播概述 (3)
1.1 设计思想 (3)
1.2 系统前景 (4)
1.3 简介 (4)
1.4 ACCESS简介 (5)
第二章视频点播系统介绍与技术介绍 (6)
2.1网站结构设计 (6)
2.1.1 目标设计 (6)
2.1.2 系统功能分析设计 (7)
2.2 数据库结构设计 (7)
2.2.1 数据库需求分析 (8)
2.2.2 数据库逻辑设计 (8)
2.3 会员管理模块 (9)
2.3.1 userreg.aspx (9)
2.3.2 用户登录 (12)
2.4 视频信息显示模块 (13)
2.4.1 网站主页default.aspx (14)
2.4.2 视频详细信息显示List.aspx (16)
2.4.3 类别视频显示dongzuo.aspx (18)
2.4.4 Mediaplayer视频播放窗口playwin.aspx (19)
2.4.5 Realplayer视频播放窗口playrm.aspx (21)
2.5 视频信息搜索模块 (22)
2.5.1 default.aspx (23)
2.5.2 搜索页面search.aspx (23)
2.6 视频信息管理模块(后台管理模块) (24)
2.6.1 admin.aspx (25)
2.6.2 manage.aspx (25)
2.6.3 freeadd.aspx (26)
2.6.4 adminedit.aspx (28)
设计心得 (30)
答谢 (31)
参考资料 (31)
第一章视频点播概述
1.1 设计思想
设计方法采用模块划分、面向对象的设计思想,主要划分为以下几个模块:视频窗口模块、界面设计模块、实现搜索/点击排行等功能模块、数据库模块、后台管理模块,本人主要完成前三个模块的设计。

用户信息表视频信息表
系统数据流图
开发步骤:①首先进行需求分析,②对系统进行整体设计③对系统进行详细设计④对软件的功能及编码进行调试⑤软件维护阶段
功能方面:用户进入主页后可以利用搜索引擎输入电影名字或者演员名进行电影搜索,如果用户想要获得一定的权限必须先进行注册、登录。

能够对自己的信息进行修改(包括,密码、emial等)
在页面的一侧可以浏览电影的最新更新情况和点击排行榜
在点播模块中主要是利用Mediaplay与Realplayer的嵌入实现播放的功能,由于视频文件格式不同要求必须两种播放器都得用,所实现的视频不仅包括对由后台管理系统上传的电影文件进行播放,还包括对一些著名的电视台进行连接实现在线实时收看功能。

后台管理方面包括实现首先实现对数据库的连接,通过编程实现页面能够读取access数据库的内容(包括电影名称、影视简介、连接海报图片的路径等)并显示在页面一定的位置。

除此之外,还要实现通过管理员帐户,可以进在本地或者远程地对影片进行在线上传、删除、填写影片简介。

数据库的建立:首先分为3个数据表,包括管理员信息表(含用户名、密码)、用户信息表(含用户名、密码、email等)、影片信息表(含影片路径、影视简介、海报路径、发表时间)。

根据要实现的功能,制定一系列的方案,设计实现系统的逻辑结构,功能框架,以及数据库结构,用和ACCESS来实现视频窗口与数据库的连接,实现视频数据的传输功能
1.2 系统前景
近年来,视频点播VOD(Video on Demand)的名字在媒体上出现得越来越多。

VOD 技术使人们可以根据自己的兴趣,不用借助录像机、影碟机、有线电视而在电脑或电视上自由地点播节目库中的视频节目和信息,是可以对视频节目内容进行自由选择的交互式系统。

VOD的本质是信息的使用者根据自己的需求主动获得多媒体信息,它区别于信息发布的最大不同:一是主动性、二是选择性。

从某种意义上说这是信息的接受者根据自身需要进行自我完善和自我发展的方式,这种方式在当今的信息社会中将越来越符合信息资源消费者的深层需要,可以说VOD是信息获取的未来主流方式在多媒体视音频方面的表现。

VOD的概念将会在信息获取的领域快速扩展,具有无限广阔的发展前景。

1.3 简介
是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。

提供许多比现在的Web开发模式强大的的优势。

执行效率的大幅提高
是把基于通用语言的程序在服务器上运行。

不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。

世界级的工具支持
构架是可以用Microsoft(R)公司最新的产品Visual 开发环境进行开发,WYSIWYG(What You See Is What You Get所见即为所得)的编辑。

这些仅是 强大化软件支持的一小部分。

强大性和适应性
因为是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上(笔者到现在为止只知道它只能用在Windows 2000 Server上)。

通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到的Web应用中。

同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript。

将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向。

简单性和易学性
是运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。

例如页面构架允许你建立你自己的用户分界面,使其不同于常见的VB-Like界面。

另外,通用语言简化开发使把代码结合成软件简单的就像装配电脑。

高效可管理性
使用一种字符基础的,分级的配置系统,使你服务器环境和应用程序的设置更加简单。

因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。

这种被称为"Zero Local Administration"的哲学观念使 的基于应用的开发更加具体,和快捷。

一个的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须得文件,不需要系统的重新启动,一切就是这么简单。

多处理器环境的可靠性
已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。

即使你现在的应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP确做不到这一点。

自定义性,和可扩展性
设计时考虑了让网站开发人员可以在自己的代码中自己定义"plug-in"的模块。

这与原来的包含关系不同,可以加入自己定义的如何组件。

网站程序的开发从来没有这么简单过。

安全性
基于Windows认证技术和每应用程序配置,你可以确性你的原程序时绝对安全的。

(但是Asp的经验告诉我们,不能这么自信,M$老是会出Bug
1.4 ACCESS简介
数据库是有结构的数据集合,它与一般的数据文件不同,(其中的数据是无结构的)是一串文字或数字流。

数据库中的数据可以是文字、图象、声音等。

Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。

第二章 视频点播系统介绍与技术介绍
2.1网站结构设计
本站的系统结构如下图所示。

服务器
浏览器
系统结构
一个典型的在线宽带点播网站应包含软件下载安装、会员管理、视频信息显示播放、视频搜索、视频信息管理和视频文件管理。

2.1.1 目标设计
在线宽带点播网站所要实现的功能如下。

● 会员管理
⏹ 会员注册 ⏹ 会员登录验证 ⏹ 会员管理 ● 视频信息显示
⏹ 显示全部视频信息 ⏹ 按类别显示视频信息 ⏹ 显示视频详细信息
● 视频信息搜索
⏹ 按关键字搜索
● 视频信息管理
⏹ 管理员登录验证 ⏹ 视频信息添加 ⏹ 视频信息修改 ⏹ 视频信息删除
⏹ 视频文件海报图上传
2.1.2 系统功能分析设计
在线宽带点播共分5个模块:会员管理模块、视频信息显示模块、视频信息搜索模块、
视频信息管理模块和视频文件管理模块,其功能如下图所示。

功能模块视图
2.2 数据库结构设计
根据功能设计的要求和模块划分,本站的数据库主要存储用户信息、视频信息、管理员信息、网站公告栏信息。

2.2.1 数据库需求分析
数据项和数据结构如下:
用户信息:ID(自动编号)、用户名和密码。

视频信息:信息名称、连接路径、文件大小、影片类型、影片简介、影片得分等。

管理员信息:ID(自动编号)、管理员名称、管理员密码。

公告栏信息:ID(自动编号)、公告内容、发表日期。

2.2.2 数据库逻辑设计
用户信息表
视频信息表
2.3 会员管理模块
会员管理模块包含一下子块。

会员注册
✧userreg.aspx
用户登录验证
✧default.aspx
修改个人信息
✧reg_pre.aspx
各页面之间的关系如下图所示:
各个页面之间的关系2.3.1 userreg.aspx
1.页面示例
下图为用户注册会员所看到的页面。

用户注册会员
2.页面中需要用户填写的表单元素
3.页面所涉及到的数据库表信息
此页向系统提供用户注册名称和密码,并涉及到对数据库表“用户”表的操作。

4.页面代码分析
按钮提交触发函数代码:
以下代码实现了对注目录中的access数据库vod.mdb的连接,此代码的主要作用是当用户点击页面中的“注册”按钮时触发的Button_Click事件,实现把各个控件的数据读取并且通过mandText = "Insert into 用户values(?,?,?,?,?,?)"语句把所获取的用户所输入的信息写入到数据库,并且当用户点击“清除”按钮或者刷新页面时把所有的控件清空,实现用户注册功能。

Sub Button_Click(Sender As Object, e As EventArgs)
Dim conn As New OleDbConnection()
Dim cmd As New OleDbCommand
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("vod.mdb")
conn.Open()
cmd.Connection = conn
mandText = "Insert into 用户values(?,?,?,?,?,?)"
cmd.Parameters.Add(New OleDbParameter("@用户名",OleDbType.VarChar,20))
cmd.Parameters.Add(New OleDbParameter("@密码",OleDbType.VarChar,20))
cmd.Parameters.Add(New OleDbParameter("@性别",OleDbType.Boolean))
cmd.Parameters.Add(New OleDbParameter("@真实姓名",OleDbType.VarChar,20))
cmd.Parameters.Add(New OleDbParameter("@电子邮件",OleDbType.VarChar,20))
cmd.Parameters.Add(New OleDbParameter("@用户主页",OleDbType.VarChar,20))
cmd.Parameters("@用户名").Value = Request("nicheng")
cmd.Parameters("@密码").Value = Request("fpass")
If Sex1.Checked Then
cmd.Parameters("@性别").Value = True
Else
cmd.Parameters("@性别").Value = False
End If
cmd.Parameters("@真实姓名").Value = Request("realname")
cmd.Parameters("@电子邮件").Value = Request("dianyou")
cmd.Parameters("@用户主页").Value = Request("zhuye")
cmd.ExecuteNonQuery() '执行sql语句
conn.Close() '关闭数据库
Response.Write("OK")
nicheng.text=""
fpass.text=""
secpass.text=""
realname.text=""
dianyou.text=""
zhuye.text=""
End Sub
</script>
用户输入验证代码:
以下代码实现对用户所输入的注册信息进行验证,验证其输入是否为空或者是否合法。

<asp:RequiredFieldValidator id="RequiredFieldValidator1"
ControlToValidate="nicheng" InitialValue="" ErrorMessage="请输入你的昵称"
Display="None" runat="server"/>
<asp:RequiredFieldValidator id="RequiredFieldValidator3"
ControlToValidate="fpass" InitialValue="" ErrorMessage="请输入你的密码"
Display="None" runat="server"/>
<asp:comparevalidator id="c1" runat="server" controltovalidate="secpass"
controltocompare="fpass" operator="equal" ErrorMessage="两次的密码不一致
" Display="None" Type="String"/>
<asp:RequiredFieldValidator id="RequiredFieldValidator4"
ControlToValidate="secpass" InitialValue="" ErrorMessage="请再输入你的密
码" Display="None" runat="server"/>
<asp:RequiredFieldValidator id="RequiredFieldValidator5"
ControlToValidate="dianyou" InitialValue="" ErrorMessage="请输入你的邮箱
地址" Display="None" runat="server"/>
<asp:ValidationSummary ShowSummary="false" ShowMessageBox="true"
ID="valSum" DisplayMode="BulletList" runat="server" HeaderText="请按照下
列提示"/>
2.3.2 用户登录
1.页面示例
用户登录系统,页面效果如下所示:
2.页面中需要用户填写的表单元素
3
该登录表单仅完成向系统提交会员登录信息,没有使用到系统中的数据库表信息。

4.页面代码:
以下代码实现对用户对表单填写信息的验证,若登录成功,把当前用户所输入的用户名信息赋值到变量flag中,以便把其值传到其他页面,若登录失败会在页面中显示登录失败信息Response.write("登陆失败!")
Sub Login(sender As Object, e As CommandEventArgs)
Dim conn As New OleDbConnection()
Dim cmd As New OleDbCommand()
Dim objReader As OleDbDataReader
Dim i As integer
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="
& Server.MapPath("vod.mdb")
conn.Open()
cmd.Connection = conn
mandText = "Select 用户名,密码From 用户"
objReader = cmd.ExecuteReader()
Do While objReader.Read()
If Request.Form("UserName") = objReader.Item("用户名") And Request.Form("pass") = objReader.Item("密码") Then
Response.write("登陆成功!")
session("flag")=UserName.text
Response.Redirect("default.aspx") '成功登录
Exit Do
End If
Loop
Response.write("登陆失败!")
ObjReader.Close() '关闭DataReader对象
conn.Close() '关闭数据连接
'提交用户名和密码
response.write("")
End Sub
2.4 视频信息显示模块
视频信息显示模块包含以下页面。

●default.aspx
●dongzuo.aspx
●list.aspx
●playrm.aspx
●playwin.aspx
各页面之间的关系如下图所示
各页面之间的关系
2.4.1 网站主页default.aspx
1.页面示例
下图为全部信息显示所看到的效果。

全部信息显示
2.页面所涉及的数据库表的信息
此页用了系统中的信息记录表download。

3.页面代码:
Sub BindGrid()函数实现了DataGrid 控件TotalShow ,stuDG1、stuDG2、stuDG3与指定数据源的绑定,并且三个控件均绑定同一个数据库表“download”
不同的是TotalShow显示的视频信息是按照“整理日期”的降序排列,stuDG1显
示的视频信息是按照影片星级多少来排序的,并且在所有的datagrid控件的视频显
示都实现了分页显示。

Sub BindList()函数实现了DateList控件stuDL与数据库表“download”的绑定,使得视频信息按照“评分”大小来排序。

Sub BindGrid() 'BindGrid()指定数据源,并绑定到DataGrid控件
Dim conn As New OleDbConnection()
Dim cmd As New OleDbCommand()
Dim DS As New DataSet()
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("vod.mdb")
conn.Open()
cmd.Connection = conn
mandText = "Select * from download order by 整理日期desc" '"Select 影片名,整理日期from download"
Dim objAdpt As New OleDbDataAdapter(cmd)
objAdpt.Fill(DS,"download")
TotalShow.DataSource = DS.Tables("download").DefaultView '指定stuDG控件的数据源
TotalShow.DataBind()
stuDG1.DataSource = DS.Tables("download").DefaultView '指定stuDG控件的数据源
stuDG1.DataBind()
stuDG2.DataSource = DS.Tables("download").DefaultView '指定stuDG控件的数据源
stuDG2.DataBind()
Dim cmd1 As New OleDbCommand()
cmd1.Connection = conn '将数据源与stuDG控件绑定
mandText = "Select * from download where classid='11'"
Dim objAdpt1 As New OleDbDataAdapter(cmd1)
'objAdpt1.Fill(DS,"download")
stuDG3.DataSource = DS.Tables("download").DefaultView '指定stuDG控件的数据源
stuDG3.DataBind() '将数据源与stuDG控件绑定
conn.Close()
End Sub
Sub totalshow_sort(sender As Object, e As DataGridsortcommandEventArgs) 'BindGrid()指定数据源,并绑定到DataGrid控件
sortfield=e.sortexpression
BindGrid()
End Sub
Sub BindList()
Dim conn As New OleDbConnection()
Dim cmd As New OleDbCommand()
Dim DS As New DataSet()
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("vod.mdb")
conn.Open()
cmd.Connection = conn
mandText = "Select 影片名from download"
Dim objAdpt As New OleDbDataAdapter(cmd)
objAdpt.Fill(DS,"download")
StuDL.DataSource = DS.Tables("download").DefaultView
StuDL.DataBind()
conn.Close()
End Sub
</Script>
2.4.2 视频详细信息显示List.aspx
1.页面示例
下图为视频信息详细内容显示所看到的页面效果。

2.页面所涉及的数据库表信息
此页使用了系统中的信息记录表“download”。

通过多个textbox控件进行读取了影片版本、影片类型、运行环境、授权方式、影片大小和影片评价的内容,并且通过datalist控件内嵌asp代码实现了读取“download”数据库表中的“海报图”的图片路径,实现了对海报图片的显示。

3.页面代码
以下代码是一个实现页面加载的函数,在页面加载的时候首先把Artname的值读取到id值为lbtext1的lable控件里,首先通过判断session对象从default.aspx传来的flag 值是否为空,若为空页面加载失败,在页面的顶部显示提示文字以及超连接“您还不是会员,请注册”,若flag值不为空则成功加载页面,并且成功读取数据库表信息。

在函数的开头定义了一个全局变量字符串play,并通过session对象把“download”中的与Artname里的影片名对应的字段内容“影片名”、“filename”,“filename1”,“filename2”传到视频播放页面playrm.aspx和playwin.aspx中。

dim play as string
sub page_load(sender as object,e as eventargs)
if not ispostback then
lbtext1.text=request("Artname")
end if
if session("flag")<>""
Dim cmd As New OleDbCommand()
Dim objReader As OleDbDataReader
Dim i As integer
dim ds as new dataset()
dim conn as new OLEDBconnection()
conn=new OLEDBconnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("vod.mdb"))
cmd.Connection = conn
dim mycommand as new OLEDBDataAdapter()
mycommand=new OLEDBDataAdapter("select * from download where 影片名='"& Request("Artname") & "'",conn)
conn.open()
mycommand.fill(ds)
mydatalist.datasource=new dataview(ds.tables(0))
mydatalist.databind()
mandText = "Select * From download where 影片名='"& Request("Artname") & "'"
objReader = cmd.ExecuteReader()
Do While objReader.Read()
lbtext2.Text = objReader.Item("影片版本" )
lbtext3.Text = objReader.Item("影片类型" )
lbtext4.Text = objReader.Item("系统要求" )
lbtext5.Text = objReader.Item("影片性质" )
lbtext6.Text = objReader.Item("大小" )
lbtext7.Text = objReader.Item("整理日期" )
session("filename")=objReader.Item("影片名")
session("filename1")=objReader.Item("filename")
session("filename2")=objReader.Item("filename1")
session("filename3")=objReader.Item("filename2")
if objReader.Item("movie")<>"" then
if objReader.Item("movie")="win" then
play="playwin.aspx"
else
play="playrm.aspx"
end if
end if
Exit Do
Loop
ObjReader.Close() '关闭DataReader对象
conn.Close()
else
response.write("<div align=center><font color=#FF0000 size=7>您还不是会员!请:</font><a href=userreg.aspx target=_self><font size=7>注册</font></a></div>")
end if
end sub
2.4.3 类别视频显示dongzuo.aspx
1.页面示例
下图为类别视频显示所看到的页面效果。

2.涉及的数据表信息
此页面使用了系统中的信息记录表download。

4.页面代码
以下代码实现了根据download数据表中不同classid的对视频信息进行分类显示,把影片总共分为十类(包括动作片、科幻片、恐怖片、爱情片、喜剧片、电视剧、卡通类、战争片、记录片、武侠片),用户可以选择自己想看的视频类别,并且显示每个影片的影片名,影片性质,整理日期,大小,影片版本,系统要求,评分。

Sub Page_load(sender as object,e as eventargs)
dim ss=Request("classid")
response.write ("电影类别编号:"&ss)
Dim conn As New oledbconnection()
dim SQLStr as string
dim cmd as new oledbcommand()
conn.connectionstring = "provider=Microsoft.jet.oledb.4.0;data source=" & server.mappath("vod.mdb")
conn.open()
SQLStr = "Select 影片名,影片性质,整理日期,大小,影片版本,系统要求,评分from download where classid =? "
cmd = new OleDbCommand(SQLStr,conn)
dim para as new oledbparameter("@classid",OleDbType.VarChar,50)
cmd.parameters.add(para)
cmd.parameters("@classid").Value = Request("classid")
dim objReader as OleDbDataReader
objReader = cmd.ExecuteReader()
myDataGrid.DataSource =objReader '定义DataGrid对象的数据源
myDataGrid.DataBind() '绑定DataGrid对象的数据源
objReader.close()
conn.close()
End Sub
2.4.4 Mediaplayer视频播放窗口playwin.aspx
1.页面示例
下图为利用Mediaplayer视频播放所看到的页面效果
2.涉及的数据库表信息
此页使用了系统中的信息记录表download。

3.页面代码分析
以下页面载入代码,当页面载入时判断是否会员,若非会员显示注册提示信息,
若为会员,则把从list.aspx传来的影片路径利用session对象赋值给全局字符串变
量url以便下面媒体播放object调用url的值。

dim url as string
sub page_load(sender as object,e as eventargs)
if session("flag")="" then
response.write("对不起!此为会员程序,请注册成我们的会员!")
end if
if request("downid")="2" then
url=session("filename2")
elseif request("downid")="3" then
url=session("filename3")
else
url=session("filename1")
end if
end sub
一般而言,安装好MediaPlayer之后,有两种方式可供选择来连接视频文件。

一种是直接在Web页面上提供视频文件的URL地址,当用户点击链接时,MediaPlaye r自动识别并实时连接进行播放;第二种方法是通过ActiveX控件方式在Web页面中嵌入MediaPlayer对象,并通过DHTML为内嵌对象动态指定视频流URL,从而为视频播放提供了一个统一的友好界面。

前一种方法对于设计者来说相对比较简单,只需要提供视频文件的播放路径。

MediaPlayer的熟练用户,还可以通过自定义Me diaPlayer的播放方式、下载视觉插件、添加到收藏夹等方式进行视频管理。

但这种方式也存在以下几点缺陷:1、对于含有中文路径和中文名的视频文件,浏览器并不能很好支持,常常出现找不到文件等错误信息。

2、需要系统进行文件关联,如果
文件关联出错,浏览器将无所适从。

3、对终端用户来说,往往希望看到统一的播放界面,而不是弹出式播放。

通过Web嵌入式视频流管理,可以把用户端的操作请求减少到最小(用户只需简单的安装RealPlayer播放器)。

如果再辅以精心的美工设计,还可以按照设计者的意愿定制出精美大方的播放界面。

以下代码实现的方法是通过ActiveX控件方式在Web页面中嵌入MediaPlayer对象,并通过DHTML为内嵌对象动态指定视频流URL,从而为视频播放提供了一个统一的友好界面。

<object>是Microsoft在IE4.0之后推出的,用来替代<embed>标签的对象定义标签(IE仍然支持<embed>),通过classid属性定义相应的对象类型。

<embed>标签是Netscape浏览器支持的对象定义标签。

其中CONTROLS参数用来指定播放器的控件外观,可以用多个控件进行组合,并通过CONSOLE参数进行关联。

<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="450" height="400">
<param name="AudioStream" value="-1">
<param name="AutoSize" value="0">
<param name="AutoStart" value="-1">
<param name="AnimationAtStart" value="-1">
<param name="AllowScan" value="-1">
<param name="AllowChangeDisplaySize" value="-1">
<param name="AutoRewind" value="0">
<param name="Balance" value="0">
<param name="BaseURL" value>
<param name="BufferingTime" value="5">
<param name="CaptioningID" value>
<param name="ClickToPlay" value="-1">
<param name="CursorType" value="0">
<param name="CurrentPosition" value="-1">
<param name="CurrentMarker" value="0">
<param name="DefaultFrame" value>
<param name="DisplayBackColor" value="0">
<param name="DisplayForeColor" value="16777215">
<param name="DisplayMode" value="0">
<param name="DisplaySize" value="2">
<param name="Enabled" value="-1">
<param name="EnableContextMenu" value="-1">
<param name="EnablePositionControls" value="-1">
<param name="EnableFullScreenControls" value="0">
<param name="EnableTracker" value="-1">
<param name="Filename" value="<% =url %>">
<param name="InvokeURLs" value="-1">
<param name="Language" value="-1">
<param name="Mute" value="0">
<param name="PlayCount" value="1">
<param name="PreviewMode" value="0">
<param name="Rate" value="1">
<param name="SAMILang" value>
<param name="SAMIStyle" value>
<param name="SAMIFileName" value>
<param name="SelectionStart" value="-1">
<param name="SelectionEnd" value="-1">
<param name="SendOpenStateChangeEvents" value="-1">
<param name="SendWarningEvents" value="-1">
<param name="SendErrorEvents" value="-1">
<param name="SendKeyboardEvents" value="0">
<param name="SendMouseClickEvents" value="0">
<param name="SendMouseMoveEvents" value="0">
<param name="SendPlayStateChangeEvents" value="-1">
<param name="ShowCaptioning" value="0">
<param name="ShowControls" value="-1">
<param name="ShowAudioControls" value="-1">
<param name="ShowDisplay" value="0">
<param name="ShowGotoBar" value="0">
<param name="ShowPositionControls" value="-1">
<param name="ShowStatusBar" value="-1">
<param name="ShowTracker" value="-1">
<param name="TransparentAtStart" value="0">
<param name="VideoBorderWidth" value="0">
<param name="VideoBorderColor" value="0">
<param name="VideoBorder3D" value="0">
<param name="V olume" value="-40">
<param name="WindowlessVideo" value="0">
</object>
2.4.5 Realplayer视频播放窗口playrm.aspx
1.页面示例
下图为利用Realplayer视频播放所看到的页面效果
播放窗口
2.嵌入式RealPlayer在播放视频文件时,一般采用把视频文件整个下载到本地然后进行播放。

这对于较大的视频文件来说,速度让人难以忍受。

解决这个问题的方法,一是把视频文件简单的分割成大小适中的小文件分段播放(由于REAL 公司对RM 格式的实行“封闭管理”,所以RM 到目前为止还不能像MPEG 等视频文件一样用视频软件自由的编辑);另外一种就是采用ram文件。

RealPlayer简单的下载文本格式的ram文件,然后取出其中的真实地址,然后自动连接到网络进行实时的点对点播放。

其缺点是增加了服务器负担。

3.页面代码
由于此页面代码与Mediaplayer播放窗口playwin.aspx内部的代码类似,这里就不作详细介绍了。

2.5 视频信息搜索模块
视频信息搜索包含以下页面。

search.aspx
各个页面之间的关系如下图所示。

2.5.1 default.aspx
1.页面示例
下图为关键字搜索界面。

2.涉及的数据库表信息
未涉及数据库的表的信息。

3.代码省略。

2.5.2 搜索页面search.aspx
1.页面示例
下图为搜索引擎结果的返回页面。

2.页面所涉及的数据库表信息
此页面是按关键字搜索结果视频信息,涉及到视频信息表download的操作。

3.页面代码
以下代码实现了利用datagrid控件显示视频信息搜索结果的函数的功能,此函数是以视频的“影片名”为关键字进行搜索,在数据库表中查找到与“影片名”相匹配的字段便成功的返回相关视频的详细信息,包含(影片名,影片性质,整理日期,大小,系统要求,评分)。

Sub Page_load(sender as object,e as eventargs)
dim ss=Request("classid")
Dim conn As New oledbconnection()
dim SQLStr as string
dim cmd as new oledbcommand()
conn.connectionstring = "provider=Microsoft.jet.oledb.4.0;data source=" & server.mappath("vod.mdb")
conn.open()
SQLStr = "Select 影片名,影片性质,整理日期,大小,系统要求,评分from download where 影片名=? "
cmd = new OleDbCommand(SQLStr,conn)
dim para as new oledbparameter("@影片名",OleDbType.VarChar,50)
cmd.parameters.add(para)
cmd.parameters("@影片名").Value = Request("keyword")
dim objReader as OleDbDataReader
objReader = cmd.ExecuteReader()。

相关文档
最新文档