




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号(学号):061XXXX广 州 大 学毕 业 论 文 (设 计)(2010届本科)题 目 VOD卡拉OK点播系统 院 (系) 计算机科学与教育软件学院 专 业: 计 机 06 (2) 姓 名: X X X 指导教师: X X X 完成日期: 2010年6月11日VOD卡拉OK点播系统摘要 随着卡拉OK兴起与发展,卡拉OK点播系统由传统的碟影机方式发展成为现今的网络在线点播方式。本文主要叙述了运用计算机平台达到卡拉OK在线点播的模拟。VOD卡拉OK点播系统的模拟实现以下几点:以C/S结构设计出客户端与服务端,通过IP/TCP等局域网通讯协议实现在线点播、通过socket网络编程达到服务端与客户端之间的通讯以及各种模拟功能的实现。关键词 VOD;卡拉OK;在线点播系统ABSTRACT With the rise and development of Kara OK, Kara OK system consists of the traditional disc-demand video player way into todays network online on-demand approach. This paper describes the use of computer platform to simulate on demand online karaoke OK.Demand VOD Kara OK system simulation to achieve the following: to C/S structure design client and server, through IP/TCP communication protocol such as LAN-line on-demand, network programming by socket server and client to achieve between communication and implementation of a variety of analog functions.KEY WORDS Video on Demand; Kara OK; Online Demand System目录1前 言.41.1 卡拉OK的起源与发展41.2卡拉OK点播系统的更新换代61.3 课题研究的意义61.4 研究方法及其实现要求71.4.1设计视频服务器71.4.2设计点播客户端71.4.3数据库设计71.4.4模拟环境72.开发环境的搭建及运行的分析和研究82.1 Visual Studio软件分析82.2 数据库SQL 200093.系统需求分析及数据库设计113.1 系统需求113.1.1 概要113.1.2 功能简介113.1.3 概要图123.1.4 系统概要流程123.2 数据库设计134.系统详细设计154.1 功能介绍154.2 编程知识点164.2.1 套接字164.2.2 多线程174.2.3类184.3 系统编程194.3.1 整体界面204.3.2 点播模块构建214.3.3 已点歌曲模块构建234.3.4 播放控制模块244.3.5 响应服务器模块264.3.6 服务端模块275.系统测试305.1 实施环境305.2 测试流程305.2.1文件共享设置、数据库信息编辑305.2.2服务端、客户端启动315.2.3点播、播放测试335.2.4对客户端的远程控制测试345.3 测试总结34参考文献35致谢36VOD卡拉OK点播系统1. 前 言1.1 卡拉OK的起源与发展卡拉OK最早是起源于日本,由于日本的风俗,男人如果回家过早的话,会让邻居们看不起,认为天天工作连个应酬都没,每天回家的太早成了旁人笑话的把柄,所以许多日本男人就在下班后聚集在酒吧或茶馆,聊天到很晚才回家,后来慢慢的他们觉得应该找点什么新的消磨时间的项目,就在酒吧里面边喝酒边用上电视机话筒等简单的可以用来唱歌的东西,后来随着科技的发展演变成现在的卡拉OK,后来传入台湾,再由台湾传入大陆,有了今天的卡拉OK的景象。在20世纪六十年代的舞会上,有传统的乐队为人们伴舞。在这一时期已出现了歌手用歌声为人们伴舞的形式。这就是第一次伴奏音乐与歌声分离成为两个独立部分。 20世纪六十年代末期,盒式录音机问世以后,左(L)右(R)立体声磁带可录制两个音源,一路是伴奏音乐,一路是人声歌唱,人们可以用这种磁带学习流行歌曲的演唱。当人们学会唱这首歌以后,人们就会关掉人声这路通道,而通过话筒亲自演唱这首歌曲。这种娱乐活动首先在日本流行起来,日本人将此称为KARAOKE娱乐游戏,KARA是日本语“空”的意思,OKE是英文交响乐的缩写。所以说KARAOKE游戏是日本人发明的。 这种KARAOKE游戏在日本迅速流行起来,在社会上引起很大风波。在一些酒吧、咖啡厅、歌舞厅,老板就辞掉了原来的乐队,而采用一套音响设备。这样就受到大批电声乐队的不满,他们向娱乐圈和KARAOKE生产厂家提出抗议。但是在按经济规律办事的日本,这些都是无济于事的。这些乐队只好转业到广告业和电视剧制作业中去了。 20世纪七十年代初期,录像机出现以后,用图像画面来解释歌曲的意境,形成了听觉视觉并举的综合艺术系统,并且有字幕的提示(利用歌词镶边、变色的方法)。 20世纪七十年代末期,激光影碟机问世以后,这种设备都是数字电路,所以它的音频信号和视频信号要比录音机和录像机有很大的提高。 影碟机和影碟的特点是频率响应宽,噪声低,失真度小,使音频和视频都达到了专业级的水准。 20世纪八十年代末期,中国才出现了歌舞厅。KARAOKE闯入中国的时间较晚,但是发展却很迅速。1988年,北京出现了歌舞厅。当时,有些饭店、酒楼,餐厅,白天进行餐饮营业,晚上,邀请专业艺术团体乐队,音响、歌手为客人演唱。1989年,北京出现了KARAOKE歌舞厅,1990年便发展为100家,1991年又发展为200家,1992年发展为400家。到1993年已发展为600家,直至1994年,歌厅、舞厅、KARAOKE厅、多功能厅,已达到800家。加上各单位,各系统对内开放的歌舞厅,北京共有千余家。 KARAOKE包间起源于日本。在日本,有些中老年人,怀念自己青春时的美好时光,通过演唱旧时的歌曲,抒发怀旧的情感,但又不便于在众人面前演唱,特为他们开辟了小型的KARAOKE包厢,使之如愿。这种形式很快在日本流行起来,1991年,开始传入中国。但在中国多为包间的形式。 1992年,有些歌舞厅加装了摄像系统。用编辑机可把自己演唱的镜头投放在屏幕上。也可将它投影在屏幕的各种不同位置上。目前,北京不少歌舞厅可把客人演唱的歌曲,制成录音磁带和录像带,提供给演唱者。 2008年,中国生产出了世界上最小的便携式卡拉OK机恋歌派,比日本号称世界最小的儿童便携式卡拉OK机“HiKara” 还要小。恋歌派是一款集听歌、看电影、唱歌、练歌、学歌、拍照等多种功能于一体的随身唱数码产品。随着社会的发展进步,K歌已经不再需要走进歌舞厅、KTV包房了,恋歌派就达到了随时随地K歌的效果。可能很多人对这种全新的K歌产品(方式)还不了解,所以目前普及的不是很完整,暂时还只限于广东珠三角地区。1.2卡拉OK点播系统的更新换代 点播系统主要经历了四个阶段的发展,分别如下:第一代卡拉系统:电脑影碟机卡拉OK影碟机包房采用放置专用卡拉OK影碟的形式,卡拉OK影碟里含有大量的MIDI音乐。第二代卡拉系统:电脑影碟机DJ(操盘手)系统包房采用电脑点歌,总控室采用影碟机,由专人负责播放客户的点播要求。第三代卡拉系统:包房电脑视频服务器每个包房配置一台电脑,DJ房只放置视频服务器,所有电脑组成一个局域网。DVD影碟等歌曲录入到视频服务器的歌曲库中,包房通过电脑菜单选择歌曲,并从视频服务器下载歌曲文件到包房电脑硬盘或内存中,用电影卡解码还原为AV信号。第四代卡拉系统:机顶盒点歌系统现阶段,虽然第四代卡拉OK系统成为了点播系统的发展趋势,但第三代的卡拉OK点播包房电脑+视频服务器(VOD在线点播)在一段时期内仍然成为了行业中的主流。1.3 课题研究的意义由于KTV已经成为人们娱乐消遣的一个重要方式,随着KTV行业的迅速发展,卡拉OK点播系统需求也变得更为广泛。此题目的选定,可以使得研究者较为靠拢企业方面的系统开发技术,通过模拟某个客户需求进行需求分析、系统架构、系统集成和完善等工作,从而能学习到比较实用系统开发技术。在理论和现实意义上,此选题可以让学生了解到相关技术,如以太网通讯及其协议、CS架构软件开发、数据库管理等。对整个系统的集成和完善,进行尝试性研究。同时,可以锻炼学生的编程能力和调试能力。在就业方面来说,小型系统的需求活跃,通过次选题的研究,可以使学生打好基础,熟悉系统的快速开发模式,为将来就业提供了强力的技术知识支持。1.4 研究方法及其实现要求分开两大模块,服务端和客户端。实现方法如下:1.4.1设计视频服务器服务器负责接受各个房间电脑请求信号,调度歌曲文件,并将它们发送到有需求的房间去。主要处理功能为:视频文件存储与发送、数据操作(包括歌曲点播频率、公告信息、费率等)、对客户端的响应处理(包括锁定/解锁、显示公告等)。1.4.2设计点播客户端客户端主要实现:点播(包括排行榜查找、拼音查找、分类查找)、视频播放、播放列表操作,查找模块基于SQL数据库进行。1.4.3数据库设计主要以服务查找功能和视频文件存放目录检索功能,定义每首歌的属性,主要有:点播次数、编号、歌手、类型、存放目录等。1.4.4模拟环境使用两台联网(以太网)计算机进行测试,测试服务端和客户端通讯及其响应,测试点播查询,测试视频文件的传输和播放等。2. 开发环境的搭建及运行的分析和研究本次毕业设计采用了的开发工具及搭建环境为:Visual Studio 2005、SQL2000;两台或以上联局域网的windows 平台主机,其中一台安装了SQL2000数据库。2.1 Visual Studio软件分析Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。此系列开发工具集成了强大功能。创建满足关键性要求的多层次的智能客户端、Web、移动或基于Microsoft Office的应用程序。使用Visual Studio 2005, 专业开发人员能够: 使用改进后的可视化设计工具、编程语言和代码编辑器,享受高效率的开发环境在统一的开发环境中,开发并调试多层次的服务器应用程序。 使用集成的可视化数据库设计和报告工具,创建SQL Server 2005解决方案。 使用Visual Studio SDK创建可以扩展Visual Studio IDE的工具。 Microsoft为单独工作或在小型团队中的专业开发人员提供了两种选择,Visual Studio 2005 Professional Edition和用于Microsoft Office系统的Visual Studio 2005工具。每种版本都在标准版的特性上进行了扩展,包括用于远程服务程序开发和调试、SQL Server2005开发的工具,以及完整的、没有限制的开发环境。同时包含了.NET Framework 2.0,它是一种稳健的、功能齐备的开发环境,支持创建扩展Visual Studio集成开发环境的工具。本课题选用visual studio 2005中C#语言的windows 窗体开发出卡拉OK模拟系统。此开发环境特点主要有以下:它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。这个版本的 Visual Studio 包含有众多版本,分别面向不同的开发角色。而Windows 窗体用于在 .NET Framework 上创建 Microsoft Windows 应用程序。此框架提供一个有条理的、面向对象的、可扩展的类集,使您能够开发功能丰富的 Windows 应用程序。另外,Windows 窗体可作为多层分布式解决方案中的本地用户界面。有关更多信息,请参见 Windows 窗体介绍。2.2 数据库SQL 2000SQL Server是微软公司开发的数据库产品,SQL Server 2000被广泛使用,很多电子商务网站、企业内部信息化平台等都是基于SQL Server产品上。今天的商业环境要求不同类型的数据库解决方案。性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。除这些核心企业品质外,SQL Server 2000 还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用 Web 带来的机会非常重要。作为一个完备的数据库和数据分析包,SQL Server 2000 为快速开发新一代企业级的商业应用程序、为企业赢得核心竞争优势打开了胜利之门。其中包含了一下特点:高度的可伸缩性和可靠性,使用 SQL Server 2000 可以获得非凡的可伸缩性和可靠性。通过向上伸缩和向外扩展的能力,SQL Server 满足了苛刻的电子商务和企业应用程序要求。向上伸缩,SQL Server 2000 利用了对称多处理器 (SMP) 系统。SQL Server Enterprise Edition 最多可以使用 32 个处理器和 64 GB RAM。 可用性,通过增强的故障转移群集、日志传送和新增的备份策略,SQL Server 2000 达到了最大的可用性。SQL Server 2000 是 Microsoft .NET Enterprise Server 的数据管理与分析中枢。SQL Server 2000 包括加速从概念到最后交付开发过程的工具。集成和可扩展的分析服务,快速开发、调试和数据转换。SQL Server 2000 带有交互式调节和调试查询、从任何数据源快速移动和转化数据、以及按 Transact-SQL 方式定义和使用函数等功能。您可以从任意 Visual Studio 工具以可视化方式设计和编写数据库应用程序。 3. 系统需求分析及数据库设计3.1 系统需求3.1.1 概要卡拉OK点播系统 运用C/S架构实现,语言为C#,以服务端-客户端模式,用2台或以上的联网电脑模拟工作(分别是一台电脑运行服务端,一台或以上电脑运行客户端)。通过客户端登陆到服务端,并从数据库读取歌曲信息和路径,运用windows平台的文件共享协议,以歌曲文件路径未媒介进行歌曲数据传说并实现在客户端的在线播放。3.1.2 功能简介服务端:服务端实现对客户端数据的处理与存储(包括歌曲点播频率、公告信息、费率等)通过数据库来进行数据存储;用户管理;实现对客户端进行通讯,达到锁定/解锁、显示公告,远程控制客户端的关闭等功能。客户端:客户端主要实现:点播(包括排行榜查找、拼音查找、分类查找)、呼叫模块、视频播放、播放列表操作,查找模块基于SQL数据库进行。在客户端电脑内存放视频数据。3.1.3 概要图服务端客户端通讯协议锁定-解锁公告信息显示费率、时间计算客户端远程控制服务端响应模块视频播放点播模块播放列表操作排行榜查找歌名查找分类查找服务端信号响应模块用户登陆显示客户端控制模块歌手查找图3.1 VOD卡拉OK点播系统概要图3.1.4 系统概要流程开始启动主进程,创建监听进程对客户端进行监听判断客户端请求,返回相应信息和辨别请求的合法性并反馈到客户端开始启动主进程,创建socket并读取服务器IP地址并发送连接请求获取反馈信息,判断,若返回成功则进入待机界面,否则弹出参数设计界面连接请求反馈信息若客户端有连接资格,则把IP显示到列表,并绑定socket,继续调用监听线程客户端控制模块,进行消息传输、锁定/解锁系统待机,等候点播操作连接不成功,弹出网络参数窗体歌库(数据库)读取以歌曲存储地址URL为媒介通过windows文件共享协议读取文件并实现在线播放审核失败图3.2 系统概要流程3.2 数据库设计为了实现全部浏览、歌名点播、歌手点播、类别点播和排行榜点播这五种点播方式,歌曲的数据的设置必须包含以下几个属性:歌曲ID、歌名(name)、歌曲类别(leibie)、已点次数(yidiancishu)等。其次,歌曲的读取是同过windows文件共享平台的路径寻找来实现的,所以必须设置一个歌曲路径属性(path)。其中,歌曲ID设置为主键,并以1为单位每添加一条数据自增1的规则编号。详细属性如下表:表3.1 数据库表设置列名数据类型长度备注IDint4主键、歌曲编号namechar20歌曲名authorchar10歌手leibiechar10类别pathchar130不为空、歌曲路径yidiancishuint4点播次数初始为0数据库截图1(表设计):图3.3 数据库表设计截图数据库截图2(表内容):图3.4 数据库歌曲存储截图4. 系统详细设计 4.1 功能介绍客户端实现的功能主要以模块划分,有:点播模块、已点歌曲模块、窗体设置模块、播放控制模块、网络参数设置模块、通讯模块。点播模块功能包括: (1)全部浏览 直接读取数据库上面的有效数据并显示到列表 (2)歌手点播 输入歌手并查询歌曲库中对应歌手的全部歌曲 (3)类别点播 输入类别并查询歌曲库中对应类别的全部歌曲(4)歌名点播 输入歌名并查询歌曲库中该歌曲(5)排行榜 按照点播次数从多到少排列,并显示到列表已点歌曲模块包括:(1)删除 将选定的歌曲从播放列表中删除(2)优先 将一首歌提前到播放列表的首位(3)切歌将当前播放的歌曲切换成下一首歌(4)清空清空播放列表窗体设置模块包括:(1)锁定/解锁 实现对客户端的远程控制(2)全屏播放 播放中才生效,使播放界面以全屏方式播放(3)全窗体播放 播放中才生效,使播放界面扩展到整个系统窗体播放控制模块包括:(1)暂停 控制播放器暂停播放(2)播放控制播放器继续播放(3)下一首 相当于切歌操作,若播放列表为空,则不做动作(4)播放控制 对歌曲播放暂停或开始操作的同时进行窗体设置模块的调用,实现播放时各个模块不阻挡播放界面参数设置模块包括:(1)参数设置 进行客户端连接设定,如SQL、服务端IP设定(2)再次连接更改参数后再次连接服务端进行登陆通讯模块包括: (1)监听模块 监听服务端发送的命令并做相应动作(2)连接模块 向服务端发送连接请求4.2 编程知识点4.2.1 套接字套接字,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程 应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCPIP协议交互提供了称为套接字(Socket)的接口。 区分不同应用程序进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。Socket原意是 “插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定与网络驱动建立关系。此后,应用程序送给Socket的数据,由Socket交网络驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定IP地址和端口号相关的数据后,由网络驱动程序交给Socket,应用程序便可从该Socket中提取接收到得数据,网络应用程序就是这样通过Socket进行数据的发送与接收的。值得注意的是IP地址都是32位地址,这是IP协议版本4(简称Ipv4)规定的,目前由于IPv4地址已近耗尽,所以IPv6地址正逐渐代替Ipv4地址,Ipv6地址则是128位无符号整数。 假设第二个程序被加入图1的网络的Host B中,那么由Host A传来的信息如何能被正确的传给程序B而不是传给新加入的程序呢?这是因为每一个基于TCP/IP网络通讯的程序都被赋予了唯一的端口和端口号,端口是一个信息缓冲区,用于保留Socket中的输入/输出信息,端口号是一个16位无符号整数,范围是0-65535,以区别主机上的每一个程序(端口号就像房屋中的房间号),低于256的短口号保留给标准应用程序,比如pop3的端口号就是110,每一个套接字都组合进了IP地址、端口、端口号,这样形成的整体就可以区别每一个套接字。4.2.2 多线程在一个程序中,这些独立运行的片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。 最开始,线程只是用于分配单个处理器的处理时间的一种工具。但假如操作系统本身支持多个处理器,那么每个线程都可分配给一个不同的处理器,真正进入“并行运算”状态。从程序设计语言的角度看,多线程操作最有价值的特性之一就是程序员不必关心到底使用了多少个处理器。程序在逻辑意义上被分割为数个线程;假如机器本身安装了多个处理器,那么程序会运行得更快,毋需作出任何特殊的调校。 根据前面的论述,大家可能感觉线程处理非常简单。但必须注意一个问题:共享资源!如果有多个线程同时运行,而且它们试图访问相同的资源,就会遇到一个问题。举个例子来说,两个进程不能将信息同时发送给一台打印机。为解决这个问题,对那些可共享的资源来说(比如打印机),它们在使用期间必须进入锁定状态。所以一个线程可将资源锁定,在完成了它的任务后,再解开(释放)这个锁,使其他线程可以接着使用同样的资源。 多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。实现的方法有:创建线程: 创建一个新的Thread对象的实例。Thread的构造函数接受一个参数: Thread DummyThread newThread( newThreadStart(dummyFunction) ); 执行线程:使用Threading命名空间里的start方法来运行线程:DummyThread.Start (); 组合线程: 经常会出现需要组合多个线程的情况,就是当某个线程需要其他线程的结束来完成自己的任务。假设DummyThread必须等待DummyPriorityThread来完成自己的任务,只需要这样做:DummyPriorityThread.Join() ; 暂停线程: 使得线程暂停给定的秒DummyPriorityThread.Sleep(); 中止线程: 如果需要中止线程可以使用如下的代码: DummyPriorityThread.Abort();4.2.3类Database 类:类方便了程序对数据库操作的调用。主要定义了数据库的ADO连接方式,其中创建了数据库IP、ID、PWD和服务端IP等。创建了ADO连接所需的SQL Command对象、DataSet对象、DataReader 对象。 其中全局变量有以下: public static string data_IP = 10; public static string data_ID = sa; public static string data_PW = jcqhqyjs; public static string data_DATA = kalaok;public static string server_IP = 35;TCP_socket类定义socket对象的字段。调用类:using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using System.Media;using System.Net;using System.Net.Sockets;using System.IO;using System.Threading;4.3 系统编程4.3.1 整体界面以单窗体,控制控件的显隐及其移动等实现所需要的效果,整体窗体如下图:图4.1 客户端系统界面截图图4.2 服务端界面截图4.3.2 点播模块构建通过菜单栏分别调用了全部浏览、歌手点播、类别点播、歌名点播、排行榜。界面以listview为主,通过一定的筛选条件进行对数据库读取歌曲信息。读取信息包括了歌名、歌手、类别、路径(不显示),ID号为自动生成。选歌时候,双击该歌曲会自动添加到已点歌曲列表中,点播界面如下图:图4.3 点播界面截图关键代码如下: #region 查询情况/ searchflag 为查询方式的信息传递标志1表示歌手查询;表示歌名查询;表示类别查询 private void button_search_Click(object sender, EventArgs e) string str = dianbo_search.Text.ToString(); if (searchflag = 1)/ SqlDataReader sqlread = sqloperate.getread(select name,author,leibie,path from movies where author = + str + ); yidian_table_display(sqlread); else if (searchflag = 2) SqlDataReader sqlread = sqloperate.getread(select name,author,leibie,path from movies where name = + str + ); yidian_table_display(sqlread); else if (searchflag = 3) SqlDataReader sqlread = sqloperate.getread(select name,author,leibie,path from movies where leibie = + str + ); yidian_table_display(sqlread); #endregion #region 双击添加已点歌曲 private void listView_show_MouseDoubleClick(object sender, MouseEventArgs e) ListViewItem temp = new ListViewItem (listView_show.SelectedItems0.SubItems0.Text); temp.SubItems.Add(listView_show.SelectedItems0.SubItems1.Text); temp.SubItems.Add(listView_show.SelectedItems0.SubItems4.Text); /if(listView_yidian.Items.Contains(temp) this.listView_yidian.Items.Add(temp); /更新点播次数,数据库对应歌曲点播次数列项+1; string str = update movies set yidiancishu = yidiancishu+1 where name = + listView_show.SelectedItems0.SubItems1.Text + ; / sqloperate.getcom(str); #endregion4.3.3 已点歌曲模块构建通过listview控件保存用户选择歌曲的信息并以其为播放列表,其中从点歌模块中传递的歌曲信息有:歌名与歌曲路径(path)。功能主要是对播放列表的编辑操作,有切歌、优先、删除、清空。如下图: 图4.4 已点界面截图部分关键代码:private void bt_ctr_youxian_Click(object sender, EventArgs e)/ if (listView_yidian.SelectedItems.Count = 0) MessageBox.Show(别忘了先选择要插队的歌曲哦O(_)O); return; else ListViewItem item = listView_yidian.SelectedItems0; listView_yidian.Items.Remove(listView_yidian.SelectedItems0); listView_yidian.Items.Insert(0, item); 4.3.4 播放控制模块主要实现对播放歌曲时候对界面的所有控件进行一个排布和显隐控制,达到以规则比例播放歌曲,同时还可以对播放控件进行一个暂停、开始、全屏等操作。部分关键代码如下: #region 播放器控制 public void ctr_player(int flag)/0代表停止;代表播放;代表暂停 if (flag = 0) wmvplayer.Ctlcontrols.stop(); playerstats = 0; else if (flag = 1) if (playerstats = 2) wmvplayer.Ctlcontrols.play(); else wmvplayer.Width = 1016; wmvplayer.Left = 0; groupBox_dianbo.Visible = false; groupBox_yidian.Visible = false; wmvplayer.URL = listView_yidian.Items0.SubItems2.Text.ToString().Trim(); playerstats = 1; bt_ctr_StartPlay.Text = 暂停播放; bt_ctr_StartPlay.Visible = false; string nowplay, nextplay; nowplay = listView_yidian.Items0.SubItems1.Text.ToString().Trim(); if (listView_yidian.Items.Count = 1) nextplay = 无; else nextplay = listView_yidian.Items1.SubItems1.Text.ToString().Trim(); music_tips.Text = 正在播放: 【 + nowplay + 】, 下一首歌曲是: + nextplay + !; listView_yidian.Items.Remove(listView_yidian.Items0); else wmvplayer.Ctlcontrols.pause(); bt_ctr_StartPlay.Text = 开始播放; playerstats = 2; #endregion4.3.5 响应服务器模块负责连接和反馈到服务器,并监听服务器发来的指令和实现相应动作,如锁定/解锁、费用显示等。部分关键代码如下: public void listenner() int m_port = 8889;/ TcpListener m_listener = null; IPAddress ServerIP = IPAddress.Parse(getIPAddress().ToString(); m_listener = new TcpListener(ServerIP, m_port); m_listener.Start(); byte packetBuff = new bytemaxPacket; Socket newClient = m_listener.AcceptSocket(); newClient.Receive(packetBuff); while (true) if (newClient != null) newClient.Receive(packetBuff); string returndata = Encoding.UTF8.GetString(packetBuff).TrimEnd(0).Trim(); if (returndata = client_locked:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司组织健步走活动方案
- 公司植树节项目活动方案
- 2025年运动医学职业资格考试试卷及答案
- 拓展知识-室外消火栓系统的工作原理
- 2025年心理咨询与治疗的基础知能力考试卷及答案
- 2025年小儿医学基础与临床技能考试卷及答案
- 2025年心理健康教育考试试卷及答案
- 2025年社会心理学基础知识考试试卷及答案
- 2025年生物技术专业研究生入学考试试卷及答案
- 2025年企业培训与发展专业毕业生测评试卷及答案
- 高中生物2015-2024年10年高考真题专题分类汇编-专题14体液调节考点2激素调节的过程
- 2024年四川省成都市中考地理试卷(含答案与解析)
- 典当行内部基本管理制度
- 2024年内蒙古呼和浩特中考满分作文《留在记忆里的芬芳》
- GB/T 29456-2025能源管理体系实施、保持和改进GB/T 23331能源管理体系指南
- 北京市清华附小2024-2025学年数学三下期末质量检测模拟试题含解析
- (2025春新版本)北师大七年级下册生物全册教案
- 2025年教科新版五年级语文下册阶段测试试卷
- 《MLCC制程介绍》课件
- 关于物业客服培训的
- 医院感染管理制度培训
评论
0/150
提交评论