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>");

//注册成功弹出对话框

            }

        }

    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/320885.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XMall-Front:基于Vue.js的XMall商城前台页面的开发实践

XMall-Front&#xff1a;基于Vue.js的XMall商城前台页面的开发实践 摘要 随着电子商务的蓬勃发展&#xff0c;用户体验逐渐成为决定电商平台成功与否的关键因素。作为XMall商城项目的一部分&#xff0c;XMall-Front是基于Vue.js的前端页面开发&#xff0c;其目标是为用户提供…

关于地盘的紧固连接技术——SunTorque智能扭矩系统

底盘作为汽车的重要组成部分&#xff0c;其材料的选择和连接技术也日益受到关注。尤其是随着新能源汽车的兴起&#xff0c;底盘轻量化已成为一种趋势。在这一背景下&#xff0c;底盘新材料与紧固连接技术的研究和应用显得尤为重要。今天SunTorque智能扭矩系统和大家一起了解地盘…

Go通过CRUD实现学生管理系统

虽然这个项目没有什么含金量&#xff0c;但是可以熟悉go的语法和go开发项目的一般流程 项目结构 项目实现了五个功能&#xff1a; &#xff08;1)增加一个学生 &#xff08;2&#xff09;删除一个学生 &#xff08;3&#xff09;修改一个学生的信息 &#xff08;4&#xf…

9.4k Star!MemGPT:伯克利大学最新开源、将LLM作为操作系统、无限上下文记忆、服务化部署自定义Agent

9.4k Star&#xff01;MemGPT&#xff1a;伯克利大学最新开源、将LLM作为操作系统、无限上下文记忆、服务化部署自定义Agent 原创 Aitrainee | 公众号&#xff1a;AI进修生&#xff1a;AI算法工程师 / Prompt工程师 / ROS机器人开发者 | 分享AI动态与算法应用资讯&#xff0c;提…

N7552A是德科技N7552A电子校准件

181/2461/8938产品概述&#xff1a; 更小巧轻便的 2 端口模块&#xff0c;支持 3.5 mm 或 N 型 50 Ω 连接器&#xff0c;能够将校准时间缩短一半 特点 频率范围&#xff1a;直流至 9 GHz 使用 N 型或 3.5 mm 连接器 更小巧轻便的 2 端口电子校准件&#xff08;ECal&#xff…

力扣刷题--数组--第一天

一、数组 数组特点&#xff1a; 连续内存空间存储得数据元素类型一致数组可以通过下标索引查找数据元素&#xff0c;可以删除、替换、添加元素等 1.1 二分查找 使用二分查找需满足得条件&#xff1a; 数组是有序的&#xff1b;数组中没有重复元素&#xff1b;查找的target…

[Docker]容器的网络类型以及云计算

目录 知识梗概 1、常用命令2 2、容器的网络类型 3、云计算 4、云计算服务的几种主要模式 知识梗概 1、常用命令2 上一篇已经学了一些常用的命令&#xff0c;这里补充两个&#xff1a; 导出镜像文件&#xff1a;[rootdocker ~]# docker save -o nginx.tar nginx:laster 导…

关于Oracle 23ai 你要知道的几件事情

1.版本生命周期 23ai发布后的Oracle版本生命周期图&#xff0c;可以看到23ai是长期支持版本可以到2032年。 引申 Oracle版本分为两类 Innovation Release--创新版本&#xff0c;一般提供至少两年技术支持 Long Term Release --长期支持版本&#xff0c;一般提供5年premier和…

护眼灯排名前十的品牌有哪些?护眼灯品牌排行前十名推荐

近视在儿童中愈发普遍&#xff0c;许多家长开始认识到&#xff0c;除了学业成绩之外&#xff0c;孩子的视力健康同样重要。毕竟&#xff0c;学业的落后可以逐渐弥补&#xff0c;而一旦孩子近视&#xff0c;眼镜便可能成为长期伴随。因此&#xff0c;专业的护眼台灯对于每个家庭…

MySQL 中的HASH详解

MySQL中的哈希索引&#xff08;Hash Index&#xff09;是一种特殊的数据库索引类型&#xff0c;它利用哈希表&#xff08;Hash Table&#xff09;的数据结构来存储索引项。哈希表通过哈希函数&#xff08;Hash Function&#xff09;将索引列的值转化为一个固定长度的哈希码&…

腾锐D2000-8 MXM VPX,全国产,可广泛应用于边缘计算网关、入侵检测、VPN、网络监控等等应用领域

腾锐D2000-8 MXM VPX 1. 概述 XMVPX-108 是一款基于飞腾 D2000/8 处理器的低功耗逻辑运算和图形处理 VPX 刀片&#xff0c; 板贴 32GB DDR4 内存&#xff0c;搭载飞腾 X100 套片&#xff0c;满足通用 IO 接口功能。GPU 采用 MXM 小型插卡形式&#xff0c; 搭配 8GB 显卡。提供…

SAP 定义冻结库存不参与MRP运算简介

在MRP中,有着各种类型的特殊库存,在运行MRP时,某些特殊库存将被考虑,某些特殊库存又不被考虑,在实际过程中某个物料的库存,存在冻结库存,质检库存,调拨的在途库存,业务部门并不希望一味的将库存地点排除到MRP计算之外。希望在跑MRP的时候只考虑非限制库存。 针对以上…

使用STM32的FLASH保存数据

使用STM32的FLASH保存数据 为了防止“掉电丢失数据”&#xff0c;我们最先想到的是EEPROM&#xff0c;但是若考虑到降低成本和PCB布线的空间&#xff0c;使用CPU内部的FLASH空间来保存数据&#xff0c;是最好的选择。尤其是在STM32芯片上&#xff0c;应用案例还是比较多的。 …

使用Beego创建API项目并自动化文档

最近需要使用Go写一个Web API项目&#xff0c;可以使用Beego与Gin来写此类项目&#xff0c;还是非常方便的&#xff0c;这里就介绍一下使用Beego来创建的Web API项目并自动化文档的方法。 使用Gin创建API项目并自动化文档参见&#xff1a;使用Gin编写Web API项目并自动化文档 …

软件FMEA的时机:架构设计、详设阶段——FMEA软件

免费试用FMEA软件-免费版-SunFMEA 软件FMEA&#xff08;故障模式与影响分析&#xff09;是一种预防性的质量工具&#xff0c;旨在识别软件中可能存在的故障模式&#xff0c;并分析其对系统性能、安全性和可靠性的影响。在软件开发生命周期中&#xff0c;选择适当的时机进行FME…

十七岁少女夸小沈阳:我瞅你长得有一种大海的感觉呢!

十七岁少女夸小沈阳&#xff1a;我瞅你长得有一种大海的感觉呢&#xff01; ——小品《超级大明星》&#xff08;上&#xff09;的台词 小沈阳&#xff1a;THANK YOU 哦了 不用拍 感谢大家 非常的感谢所有的好朋友们 把你们热情而洋溢的掌声呢 送给我们所有的演员 这…

[VulnHub靶机渗透] Hackademic: RTB1

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

linux内核网络源码--通知链

内核的很多子系统之间有很强的依赖性&#xff0c;其中一个子系统侦测到或者产生的事件&#xff0c;其他子系统可能都有兴趣&#xff0c;为了实现这种交互需求&#xff0c;linux使用了所谓的通知链。 本章我们将看到 通知链如何声明以及网络代码定义了哪些链 内核子系统如何向通…

【yolov8】yolov8剪枝训练流程

yolov8剪枝训练流程 流程&#xff1a; 约束剪枝微调 一、正常训练 yolo train model./weights/yolov8s.pt datayolo_bvn.yaml epochs100 ampFalse projectprun nametrain二、约束训练 2.1 修改YOLOv8代码&#xff1a; ultralytics/yolo/engine/trainer.py 添加内容&#…

深度学习之基于Vgg19预训练卷积神经网络图像风格迁移系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在数字艺术和图像处理领域&#xff0c;图像风格迁移技术一直备受关注。该技术可以将一幅图像的内容和…