ASP.NET视频点播系统的设计与实现

摘****要

本文阐述了基于WEB的交互式视频点播系统的协议原理、软件结构和设计实现。本视频点播系统根据流媒体传输原理,在校园局域网的基础上模拟基于Web的视频点播系统,实现用户信息管理、视频文件的添加、删除、修改及在线播放和搜索功能。本系统是一个小型系统,我们采用基本的SQL Server数据库。具体实现中将HTML、ASP.net及C#相结合,力求界面美观、操作流畅。本文主要论述服务器端视频服务平台的搭建、流媒体的相关原理及管理功能的具体实现。

**关键词:**流媒体;ASP.net;视频点播

2.3 系统的开发工具

2.3.1 开发环境
  • Microsoft Visual Studio 2005 介绍

Visual Studio是微软公司出品的一款大型应用软件,是一套完整的开发工具集,它主要用于生成ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序。

  • Microsoft SQL Server 2000介绍

Microsoft SQL Server 2000是目前使用最广泛的数据库之一。

2.3.2 .NET介绍

对于.NET,Microsoft公司自己也没有一个详细确切的定义。但是我们可以这样认为:.NET是Microsoft公司提供的一系列产品的总称。具体来说,.NET由下面几个部分组成:.NET Framework、.NET企业服务器和.NET开发工具。

.NET Framework是一个高性能的程序运行环境,它提供了具体的服务和技术,支持统一的类库,方便开发人员建立相应的应用程序。

.NET企业服务器是指SQL Server 2000之类的由.NET Framework应用程序使用的服务器端产品。

2.3.3 C#介绍

C# 编程语言 C# 是一种新的编程语言,它从 C 和 C++ 演变而来,是一种简单、现代、类型安全和面向对象的语言。C# 是为在 .NET 平台上生成企业级应用程序而设计的。用 C# 编写的代码被编译为访问 CLR 服务的托管代码。Visual Studio 环境和向导完全支持 C#。C# 编程所用的类库是 Framework。

4.1 系统实现的关键技术

4.1.1 数据库的连接

本系统与数据库的连接都封装到数据库连接类里面,使用时调用类的对象就可完成建立连接、执行一种操作、关闭连接。

数据库连接类的代码如下:

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

public class connClass

{

public string que;

public connClass() { }

public static bool rd(string que)//对数据库执行查询,返回查询是否成功

{

SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=movie;User ID=sa;Persist Security Info=True"); //建立数据库连接

conn.Open();//打开数据库连接

SqlCommand cmd = new SqlCommand(que, conn);

SqlDataReader sqlrd = cmd.ExecuteReader();//执行sql语句

return sqlrd.Read();//返回执行结果

sqlrd.Close();

conn.Close();//关闭数据库连接

}

public static bool Execute(string que)//对数据库执行一次操作,返回操作是否成功

{

SqlConnection conn = new SqlConnection("Data Source=.; Initial Catalog=movie;User ID=sa;Persist Security Info=True");

conn.Open();

SqlCommand cmd = new SqlCommand(que, conn);

int count =Convert.ToInt32(cmd.ExecuteNonQuery());

if (count > 0) return true;

else return false;

conn.Close();

}

public static DataTable ds(string que)//从数据库中获得数据储存到内存中

{

SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=movie;User ID=sa;Persist Security Info=True");

conn.Open();

SqlDataAdapter adap = new SqlDataAdapter(que,conn);

DataSet ds = new DataSet();

adap.Fill(ds,"table");

return ds.Tables["table"];

conn.Close();

}

public static SqlDataReader read(string que)//执行一次数据库查询返回查询结果

{

SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=movie;User ID=sa;Persist Security Info=True");

conn.Open();

SqlCommand cmd = new SqlCommand(que, conn);

SqlDataReader sqlrd = cmd.ExecuteReader();

sqlrd.Read();

return sqlrd;

sqlrd.Close();

conn.Close();

}

}

4.1.2 嵌入试视频播放

本系统通过ActiveX控件方式在Web页面中嵌入播放对象,并通过DHTML为内嵌对象动态指定视频流URL,从而为视频播放提供了一个统一的友好界面。用户点播视频时,系统根据视频文件的格式选择合适的播放页面。

嵌入式视频播放代码如下:

RM视频格式代码,如下:

<object id="player" align=middle name="player" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="800" height="600" >

<param name=_ExtentX value=11986>

<param name=_ExtentY value=8123>

<param name=AUTOSTART value=-1>

<param name=SHUFFLE value=0>

<param name=PREFETCH value=0>

<param name=NOLABELS value=0>

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

<param name=CONTROLS value=ImageWindow>

<param name=CONSOLE value=Clip1>

<param name=LOOP value=0>");

<param name=NUMLOOP value=0>

<param name=CENTER value=1>;

<param name=MAINTAINASPECT value=1>

<param name=BACKGROUNDCOLOR value=#000000>

</object>

<object ID="RP2" height=58 width=800 align=middle CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA">

<param name="_ExtentX" value="12409">

<param name="_ExtentY" value="1535">

<param name="AUTOSTART" value="-1">

<param name="SHUFFLE" value="0">

<param name="PREFETCH" value="0">

<param name="NOLABELS" value="0">

<param name="CONTROLS" value="ControlPanel,StatusBar">

<param name="CONSOLE" value="Clip1">

<param name="LOOP" value="0">

<param name="NUMLOOP" value="0">

<param name="CENTER" value="0">

<param name="MAINTAINASPECT" value="0">

<param name="BACKGROUNDCOLOR" value="#000000">

<embed type="audio/x-pn-realaudio-plugin" CONSOLE="Clip1" CONTROLS="ControlPanel,StatusBar" AUTOSTART="true">

</object>

4.2 视频点播系统的部分功能的设计与实现

4.2.1 用户登陆功能的实现
  • 用户登陆流程:根据用户输入的用户名从数据库中读取数据,如果数据库中没有该用户名就报错,如果有该用户的信息就把密码从数据库中读取出来,然后和用户输入的密码进行比较,如果密码正确就登陆成功。如果密码不正确就提示出错。
  • 用户登陆流程图,如图5:

图5:用户登陆流程图

  • 用户登陆功能关键代码如下:

protected void Button1_Click(object sender, EventArgs e) //点击登陆按钮执行以下代码

{

string name = uid.Text.Trim(); //将用户输入的用户名赋给变量name

string password = pwd.Text.Trim(); //将用户输入的密码赋给变量password

if (!connClass.rd("select vusername from tableuser where vusername='" + name + "'"))

//判断用户输入的用户名是否存在

HttpContext.Current.Response.Write("<script>alert('用户名不正确!'); history.back(); </script>");

else

{

SqlDataReader rd = connClass.read("select vpassword,cquanxian from tableuser where vusername='" + name + "'");

if (rd.GetString(0).Trim() != password)//判断用户输入的密码是否正确

HttpContext.Current.Response.Write("<script>alert('密码不正确!'); history.back(); </script>");

else

{Session["username"] = name;//把用户名赋给该用户的Session["username"]对象

Session["rigth"] = rd.GetString(1).Trim();

//把从数据库读取的用户权限赋给Session["rigth"]

Response.Redirect("index.aspx"); //跳转到首页

}

}

}

​​​​​​​4.2.2 用户注册功能的实现
  • 用户注册流程介绍:用户填写用户注册页面的表格,然后点击注册按钮,系统验证用户输入的注册信息是否合法,如果合法就把用户输入的注册信息保存到系统的数据库中。如果注册信息不合法就提示出错。
  • 用户注册流程图,如图6:

图6:用户注册流程图

  • 用户注册关键代码如下:

protected void regsiterB_Click(object sender, ImageClickEventArgs e)

//用户点击注册按钮执行以下代码

{

if (connClass.rd("select vusername from tableuser where vusername='" + username.Text.Trim() + "'")) { username.Text = "用户名已存在!"; } //判断用户名是否已经被使用

else

{

if (connClass.rd("select vEmail from tableuser where vEmail='" + email.Text.Trim() + "'")) { email.Text = "Email已被使用!"; }//判断Email是否已经被使用

else

{

int i;

SqlDataReader read = connClass.read("select MAX(iUserID) from tableuser");

//从数据库中读取最大的用户ID的值

i = Convert.ToInt32(read.GetValue(0)) + 1;

//新注册用户的ID等于最大的用户ID的值加1

connClass.Execute("insert into tableuser values ('" + i + "','" + username.Text.Trim() + "','" + password1.Text.Trim() + "','" + email.Text.Trim() + "','" + question.Text.Trim() + "','" + answer.Text.Trim()+ "','1')");

//添加新用户信息到数据库

Session["username"] = username.Text.Trim();

Session["rigth"] = "1";

HttpContext.Current.Response.Write("<script>alert('注册成功,即将转到首页!');window.location.href='index.aspx' </script>");

//注册成功弹出对话框

}

}

}

相关推荐
0zxm1 小时前
06 - Django 视图view
网络·后端·python·django
m0_748257181 小时前
Spring Boot FileUpLoad and Interceptor(文件上传和拦截器,Web入门知识)
前端·spring boot·后端
小_太_阳2 小时前
Scala_【1】概述
开发语言·后端·scala·intellij-idea
智慧老师2 小时前
Spring基础分析13-Spring Security框架
java·后端·spring
搬码后生仔3 小时前
asp.net core webapi项目中 在生产环境中 进不去swagger
chrome·后端·asp.net
凡人的AI工具箱3 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
Lx3524 小时前
Pandas数据重命名:列名与索引为标题
后端·python·pandas
小池先生4 小时前
springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
java·spring boot·后端
百罹鸟4 小时前
【vue高频面试题—场景篇】:实现一个实时更新的倒计时组件,如何确保倒计时在页面切换时能够正常暂停和恢复?
vue.js·后端·面试
小蜗牛慢慢爬行5 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate