【测控技术与仪器】基于c#winform的语音通信系统设计_第1页
【测控技术与仪器】基于c#winform的语音通信系统设计_第2页
【测控技术与仪器】基于c#winform的语音通信系统设计_第3页
【测控技术与仪器】基于c#winform的语音通信系统设计_第4页
【测控技术与仪器】基于c#winform的语音通信系统设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计摘要C是一种可视化的程序设计语言。WINDOWS窗体和控件是开发C应用程序的基础,窗体和控件扮演者重要的角色。此次设计的主要任务就是通过在CWINFORM在多媒体数据通信中,能够对多媒体数据进行压缩、实时流传等操作。本文详细介绍了此次毕业设计的开发过程。WINDOWS应用程序的设计基础,以及通过UDP来作为可行的网络传输层协议中,UDP协议的主要作用。还有对采集到得声音进行压缩编码,再通过采用SOCKETUDP的方式来实现数据传输,之后进行数据解码进行实时播6放,最后利用窗体应用程序实现便于用户操作的UI界面。关键词C应用程序;UDP协议;声音采集;数据传输目基于CWINFORM的语音通信系统设计学生姓名学号系别防灾仪器系专业测控技术与仪器班级开题时间2013年12月25日答辩时间2014年06月07日指导教师职称教授THEDESIGNOFVOICECOMMUNICATIONSYSTEMBASEDONCWINFORMABSTRACTCISAVISUALPROGRAMMINGLANGUAGEWINDOWSFORMSANDCONTROLSISTHEFOUNDATIONFORTHEDEVELOPMENTOFCAPPLICATION,THEFORMANDCONTROLPLAYSANIMPORTANTROLETHEMAINTASKOFTHISDESIGNISTHECWINFORMINTHEMULTIMEDIADATACOMMUNICATIONS,TOCOMPRESSTHEMULTIMEDIADATA,REALTIMECIRCULATINGOPERATIONTHISPAPERINTRODUCESTHEDEVELOPMENTPROCESSOFTHEGRADUATIONDESIGNDESIGNOFWINDOWSAPPLICATIONPROGRAM,ANDTHROUGHUDPASNETWORKTRANSMISSIONFEASIBLEPROTOCOL,MAINFUNCTIONOFTHEUDPPROTOCOLTHECOLLECTEDVOICECOMPRESSIONCODING,ANDTHENTHROUGHTHEUSEOFSOCKETUDPTOREALIZETHEDATATRANSMISSION,DATADECODINGREALTIMEBROADCAST6,FINALLYACHIEVEAUSERFRIENDLYUIINTERFACEUSINGTHEAPPLICATIONFORMKEYWORDSCAPPLICATIONUDPPROTOCOLSOUNDACQUISITIONTHEDATATRANSFER目录第1章前言111课题内容及意义1111选题背景1112研究现状及发展趋势112论文组织结构2第2章CWINFORM的语音通信系统设计应用原理321CWINFORM应用程序设计基础3211计算机窗体3212计算机控件和计算机事件4213WINDOWS窗体和基本属性5214创建窗体7215设置启动窗体属性和窗体的显示与隐藏7216窗体的事件8217窗体控件描述和常用控件8218常用属性1022UDP协议1023蓝牙耳机的技术发展与应用11第3章系统设计方案1231设计流程1232步骤分析12321初始化12322语音采集13323语音压缩13324数据传输13325数据接收、解压14326播放1433本章小结14第4章系统测试结果1541硬件部分测试1542软件部分测试1543综合测试17第5章总结和展望1951课题工作和总结1952系统功能的拓展19致谢20参考文献21附录23第1章前言11课题内容及意义111选题背景随着信息化日益飞速发展,对于数字多媒体的应用越来越广泛,宽带网概念逐渐走入更广阔的空间,数字多媒体深入人心。许多应用课题都围绕着两者展开,其中可视电话、电话会议系统和视频会议系统发展迅速,这些都要涉及到多媒体数据通信。在多媒体数据通信中,要求有良好的实时性,能够对多媒体数据进行压缩、实时流传输等操作而音频的采集和实时性播放是视频会议系统中最键的部分,所以本课题就是基于这一目标而设计的。本设计是基于CWINFORM这一软件下的语音通信系统设计。C语言是MICROSOFT公司2000年6月发布的面向对象程序设计语言,随着十几年的快速发展,在计算机专业课程中逐渐取代了传统的C语言。对于开发应用程序的人员来说,C语言吸收了JAVA和C等语言的经验和教训,是最全面的面向对象程序设计语言。该语言以其特有的面向对象、组件技术、类型安全、自动内存管理等优点,很是受到应用程序开发人员的喜爱。“C程序设计”作为学院多媒体专业相对核心的基础职业课程,是学生接触最早的编程语言。但由于高职学生的整体素质下降,加上C的面向对象特征和程序设计的抽象性,以知识为目标、以学科系统知识和理论原理为导向、以教师为主体、以应试为基础的教学模式越来越不能适应高职院校的教学要求,如何进行教学改革,激发学生的学习兴趣,提高学生的学习主动性,使学生在学习中建立真正的自信心,进而掌握C程序设计语言并能熟练综合运用,是现代课程改革中必须面对并解决的关键问题。高等职业教育是“以就业为导向,以应用为宗旨,以能力为本位”的一种高等教育类型,目标是培养实践能力强、具有良好职业道德,面向生产、建设、管理和服务第一线岗位的高素质技能型人才。高职教育的社会定位是培养技术应用型(职业技术)人才,毕业生应主要从事生产、工艺、建设等工作,最需要的是知识应用的能力和“做事”的能力,还需要具备各项专业技术能力。根据社会定位和高职教育的培养目标,本文主要介绍“C程序设计”课程内容,探索在职业基础课程如何进行基于工作过程的课程设计和实施。112研究现状及发展趋势基于工作过程的课程设计与开发,强调为学生的职业生涯发展培养其综合职业能力。课程建设的出发点、落脚点及实施都是工作过程。所谓工作过程是在企业里为完成一件工作任务并获得工作成果而进行的一个完整的工作程序。因此,在课程的知识体系框架内,通过构建合适的学习情境,以职业活动的工作过程为依据,改造课程的内容和顺序。通过项目的实现,使学生直接获得经验经验,实现由知识的认识,到知识的重组,再到知识的迁移,最终实现知识的应用。目前,学院多媒体技术专业已经有了一些基于工作过程的课程改革成功案例,但大都是综合应用类的课程,对于“C程序设计”这种基础语言类课程来说,基于工作过程的课程设计与开发研究尚处起始阶段。在“C程序设计”教学中,项目化教学虽然已成为目前主要采用的课程模式,但在实践层面上还存在诸多问题。一是项目内容和来源的简单化及随意性。大学课程中的项目应尽可能取材于公司,但由于公司实际项目比较复杂,不符合课程教学要求,很难全面覆盖课程的全部知识点,实际操作起来比较困难。由于上述因素,在教学中采用的所谓项目基本还是原来的知识点,或者是学科体系中一些验证性实验简单变换一下拿来用于项目化教学,更有甚者,一些项目化教材的目录就是老旧的章节目录。通过这种方式开发教材和项目化课程旧失去了“高职教育中的项目课程应该是一种基于工作任务的项目课程”的根本意义。二是项目间缺乏有效提高学生能力的关联度。项目的关联不仅体现着知识的分配和覆盖,还反映了能力的迁移和提高。目前教学过程中使用的项目大部分是独立的,没有相关性和递进性。学生可以完成工作过程中的孤立项目,却不能独立完成整个工作。深究其因,在于训练项目间没有关联,造成了知识遗漏和却是,不能将工作领域所需要的全部知识覆盖,导致学生在解决实际问题时缺少完整的知识体系支撑。12论文组织结构本论文共分6章,论文内容按下列章节组织第1章是前言。本章主要给出毕业设计课题的背景,内容、意义和论文的组织结构。第2章是介绍通过CWINFORM来设计语音通信系统的原理。其中包括CWINFORM的应用程序设计基础、UDP的主要作用和蓝牙的技术发展和耳机应用。第3章是设计流程。先大概设计每一步内容,再画出流程图,之后分析每一步的操作,最后确定设计流程。第4章是通过蓝牙耳机测试,本章介绍了通过蓝牙耳机将压缩的声音数据解压后播放。第5章是总结与展望。本章对论文所作的工作进行了总结,并对系统的功能提出拓展。第2章CWINFORM的语音通信系统设计应用原理21CWINFORM应用程序设计基础211计算机窗体WINDOWS窗体就是创立WINDOWS应用程序的框架。在VSNET中创建WINDOWS应用程序的第一步就是建立这个框架。操作步骤如下1运行VSNET,在【起始页】上单击【新建项目】按钮,打开“新建项目”对话框,如图21所示。在“项目类型”列表框中指定项目的类型为“VISUALC”,在“模板”列表框中选择“WINDOWS应用程序”模板,在“名称”文本框中输入CALCULATOR,在“位置”下拉列表中选定保存项目的位置。图21新建项目框图2单击“确定”按钮后就进入VSNET的主界面,如图22所示。图22程序设计界面图会从图22可以看出,当选择“WINDOWS应用程序”作为应用程序的模板后,系统自动为用户生成一个空白窗体,一般名为FORM1。该窗体就是应用程序运行时显示给用户的操作界面,下一步就是向窗体中添加各种控件。212计算机控件和计算机事件控件表示用户和程序之间的图形化连接。控件可以提供或处理数据、接受用户输入、对事件做出响应或执行连接用户和应用程序的其他功能。因为控件本质上是具有图形接口的组件,所以它能通过组件所提供的功能并与用户交互。窗体中的控件有很多,“工具箱”中的“WINDOWS窗体”里包含了所有WINDOWS的标准控件,用户还可以根据需要自己定义控件。通过在“属性”窗口中改变控件的属性可以改变的外观和特性。在C中,基于WINDOWS应用程序设计方法是事件驱动的。事件驱动不是由程序的顺序来控制的,而是由事件的发生来控制的。事件驱动程序设计是围绕着消息的产生与处理而展开的,消息就是关于发生的事件的信息。WINDOWS程序员的工作就是对所开发的应用程序所要发出或者接收的消息进行排序和管理。事件驱动程序方法提供了许多便利,对于那些需要大范围用户干预的应用程序来说,更是很有用处。在“窗体设计器”中看到的是窗体及其中的控件,而要为控件添加事件处理程序就必须先切换到代码编辑器状态。切换到代码编辑器有以下几种方法(1)双击窗体或者某控件。(2)在解决方案资源管理器中右键单击FORM1CS,从快捷菜单中选择“查看代码”命令。如果选择“视图设计器”则可以回到“窗体设计器”中。(3)当第一次切换到代码编辑器之后,在窗体标题“FORM1CS设计”的左边会自动出现一个新的标题FORM1CS,单击该标题就可以切换到代码编辑器。反之,如果单击“FORM1CS设计”则会切换到“窗体设计器”。213WINDOWS窗体和基本属性窗体就好像一个容器,其他界面元素都可以放置在窗体中。C中以类FORM来封装窗体,一般来说,用户设计的窗体都是类FORM的派生类,用户窗体中添加其他界面元素的操作实际上就是向派生类中添加私有成员。当新建一个WINDOWS应用程序项目时,C就会自动创建一个默认名为FORM1的WINDOWS窗体。WINDOWS窗体由以下4部分组成标题栏、控制按钮、边界、窗口区。WINDOWS窗体的属性可以决定窗体的外观和行为,其中常用的属性有名称(NAME)属性、标题(TEXT)属性、控制菜单属性和影响窗体外观的属性。1、窗体的名称属性(NAME)NAME用于设置窗体的名称,该属性值作为窗体的标志,用于在程序中引用窗体。在初始新建一个WINDOWS应用程序项目时,自动创建一个窗体,该窗体的名称被自动命名为FORM1;添加第2个窗体时,其名称被自动命名为FORM2,依次类推。通常而言,在设计WINDOWS窗体时,可给其NAME属性设置一个有实际含义的名字。2、窗体的标题属性(TEXT)TEXT属性用于设置窗体标题栏显示的内容,它的值是一个字符串。通常,标题栏显示的内容应能概括地说明窗体的内容或作用。3、窗体的控制菜单属性在C应用程序中的WINDOWS窗体,一般都显示控制菜单,以方便用户的操作。(1)CONTROLBOX属性该属性用来设置窗体上是否有控制菜单。其默认值TRUE,窗体上显示控制菜单。若将该属性设置为FALSE,则窗体上不显示控制菜单。(2)MAXIMIZEBOX属性用于设置窗体上的最大化按钮。其默认值TRUE,窗体上显示最大化按钮。若将该属性设置为FALSE,则窗体上不显示最大化按钮。(3)MINIMIZEBOX属性用于设置窗体上的最小化按钮。其默认值TRUE,窗体上显示最小化按钮。若将该属性设置为FALSE,则窗体上不显示最小化按钮。4设置窗体外观的属性1FORMBORDERSTYLE属性用于控制窗体边界的类型。它有7个可选值,可选值说明如表23所示。表21FORMBORDERSTYLE属性的可选值可选项说明NONE窗体无边框,可以改变大小FIXED3D使用3D边框效果。不允许改变窗体大小,可以包含控件菜单、最大化按钮和最小化按钮。FIXEDDIALOG用于对话框。不允许改变窗体大小,可以包含控件菜单、最大化按钮和最小化按钮。FIXEDSINGLE窗体为单线边框。不允许改变窗体大小,可以包含控件菜单、最大化按钮和最小化按钮SIZABLE该值为属性的默认值,窗体为双线边框。可以重新设置窗体的大小,可以包含控件菜单、最大化按钮和最小化按钮。FIXEDTOOLWINDOW用于工具窗口。不可重新设置窗体大小,只带有标题栏和关闭按钮。SIZABLETOOLWINDOW用于工具窗口。可以重新设置窗体大小,只带有标题栏和关闭按钮2SIZE属性用来设置窗体的大小。3LOCATION属性设置窗体在屏幕上的位置,即设置窗体左上角的坐标值。4BACKCOLOR属性用于设置窗体的背景颜色,可以从弹出的调色板中选择。5BACKGROUNDIMAGE属性用于设置窗体的背景图像。6OPACITY属性该属性用来设置窗体的透明度。5设置窗体可见性的属性窗体的可见性由VISIBLE属性来控制。214创建窗体通常,在开发项目时,一个窗体往往不能满足,通常需要用到多个窗体。C提供了多窗体处理能力,在一个项目中可创建多个窗体,添加新窗体的方式如下(1)选择项目菜单下的“添加WINDOWS窗体”命令,打开“添加新项”对话框,如图23所示。图23添加新项“对话框”图(2)在“添加新项”对话框的模板框内,选择“WINDOWS窗体”模板,然后,单击“打开”按钮,就添加一个新的WINDOWS窗体。完成添加窗体后,在解决方案资源管理器窗口中双击对应的窗体,则在WINDOWS窗体设计器中,可显示该窗体。215设置启动窗体属性和窗体的显示与隐藏当在应用程序中添加了多个窗体后,默认情况下,应用程序中的第一个窗体被自动指定为启动窗体。在应用程序开始运行时,此窗体就会首先显示出来。如果想实现在应用程序启动时,显示别的窗体,那么就要设置启动窗体。1、窗体的显示如果要在一个窗体中通过按钮打开另一个窗体,就必须通过调用SHOW方法显示窗体。语法如下PUBLICVOIDSHOW2、窗体的隐藏通过调用HIDE方法隐藏窗体。语法如下PUBLICVOIDHIDE216窗体的事件WINDOWS是事件驱动的操作系统,对FORM类的任何交互都是基于事件来实现的。FORM类提供了大量的事件用于响应对窗体执行的各种操作。窗体设计人员往住关心窗体的加载和关闭,通常在加载时进行界面和数据的初始化。在关闭前进行资源的释放等清理操作,也可以取消关闭操作。下面详细介绍窗体的CLICK、LOAD和FORMCLOSING事件。1CLICK(单击)事件当单击窗体时,将会触发窗体的CLICK事件。语法如下PUBLICEVENTEVENTHANDLERCLICK2LOAD(加载)事件当第一次直接或间接调用FORMSHOW方法来显示窗体时,窗体就会进行且只进行一次加载,并且在必需的加载操作完成后会引发LOAD事件。通常,在LOAD事件响应函数中执行一些初始化操作。语法如下PUBLICEVENTEVENTHANDLERLOAD3FORMCLOSING(关闭)事件FORM类的FORMCLOSING事件是在窗体关闭时引发的事件,直接或间接调用FORMCLOSE方法都会引发事件。在FORMCLOSING事件中,通常进行关闭前的确认和资源释放操作。语法如下PUBLICEVENTFORMCLOSINGEVENTHANDLERFORMCLOSING217窗体控件描述和常用控件控件是包含在窗体上的对象,是构成用户界面的基本元素,也是C可视化编程的重要工具。使用控件可使程序的设计简化避免大量重复性工作,简化设计过程,有效地提高设计效率。对于一个程序开发人员而言,必须掌握每类控件的功能、用途,并掌握其常用的属性、事件和方法。在VS2005中,工具箱中包含了建立应用程序的各种控件。工具箱分为WINDOWS窗体、公共控件、容器、菜单和工具栏、数据、组件、打印、对话框等部分,常用的WINDOWS窗体控件放在“WINDOWS窗体”选项卡下。工具箱中有数十个常用的WINDOWS窗体控件,它们以图标的方式显示在工具箱中,其名称显示于图标的右侧。在介绍具体控件之前,首先在此探讨一下各个控件共有的属性、事件和方法。在C中,所有的窗体控件,比如标签控件、文本框控件、按钮控件等全部都是继承于SYSTEMWINDOWSFORMSCONTROL。作为各种窗体控件的基类,CONTROL类实现了所有窗体交互控件的基本功能。CONTROL类的属性、方法和事件是所有窗体控件所公有的,而且其中很多是在编程中经常会遇到的。(1)CONTROL类的属性CONTROL类的属性描述了一个窗体控件的所有公共属性,可以在属性(PROPERTIES)窗口中查看或修改窗体控件的属性。常用的属性如下NAME属性每一个控件都有一个NAME(名字)属性,在应用程序中,可通过此属性来引用这个控件。C会给每个新添加的控件指定一个默认名。在应用程序设计中,可根据需要将控件的默认名字改成更有实际代表意义的名字。TEXT属性在C中,每一个控件对象都有TEXT属性。TEXT属性在很多控件中都有重要的意义和作用。ANCHOR属性ANCHOR的意思是“锚”,那么ANCHOR属性是用来确定此控件与其容器控件的固定关系的。DOCK属性DOCK属性规定了子控件与父控件的边缘依赖关系。DOCK的值有6种,分别是TOP、BOTTOM、LEFT、RIGHT、FILL,最后还有默认值NONE。一旦DOCK值被设定,子控件就会发生变化与父控件选定的边缘相融在一起。(2)CONTROL类的方法可以调用CONTROL类的方法来获得控件的一些信息,或者设置控件的属性值及行为状态。(3)CONTROL类的事件在C中,当用户进行某一项操作时,会引发某个事件的发生,此时就会调用事件处理程序代码,实现对程序的控制。事件驱动实现是基于窗体的消息传递和消息循环机制的。在C中,所有的机制都被封装在控件之中,极大方便了编写事件的驱动程序。如果希望能够更加深入地操作,或定义自己的事件,就需要联合使用委托(DELEGATE)和事件(EVENT),可以灵活地添加、修改事件的响应,并自定义事件的处理方法。窗体是由一个个控件构成的,因此熟悉控件是进行合理、有效的程序开发的重要前提。本节内容将针对WINDOWS窗体应用程序中常见的控件进行详细介绍。按钮(BUTTON)是用户与应用程序交互的最常用的工具。它用于接收用户的操作信息,去执行预先规定的命令,触发相应的事件过程,以实现指定的功能。218常用属性(1)TEXT属性该属性用于设定按钮上显示的文本。该属性也可为按钮创建快捷方式,其方法是在作为快捷键的字母前加一个“FOREACHWAVINDEVICEDEVICEINWAVEINDEVICESM_PINDEVICESITEMSADDDEVICENAME加载输出设备与加载输入设备类似,代码如下M_POUTDEVICESITEMSCLEARFOREACHWAVOUTDEVICEDEVICEINWAVEOUTDEVICESM_POUTDEVICESITEMSADDDEVICENAME322语音采集由于WAVEIN类可实现语音输入设备录入音频流,而本设计选取蓝牙耳机的麦克风作为输入设备,故可以实现蓝牙耳机语音采集。代码如下M_PWAVEINNEWWAVEINWAVEINDEVICESM_PINDEVICESSELECTEDINDEX,8000,16,1,400M_PWAVEINBUFFERFULLNEWBUFFERFULLHANDLERM_PWAVEIN_BUFFERFULLM_PWAVEINSTART程序中首先根据选取的有效输入设备序号M_PINDEVICESSELECTEDINDEX创建新的WAVEIN类的语音流M_PWAVEIN,然后分配创建缓冲空间M_PWAVEINBUFFERFULL,最后开始录入声音。323语音压缩语音信号数据量较大,在传输的过程中需要对其进行压缩编码,本次设计中采用的是国际电信联盟订制的编码方法G711实现压缩,其包含两种编码方式ULAW和ALAW。当缓冲区满之后,语音通过用户选取好编码方式进行压缩。ENCODEDDATAG711ENCODE_ULAWBUFFER,0,BUFFERLENGTH或者ENCODEDDATAG711ENCODE_ALAWBUFFER,0,BUFFERLENGTH324数据传输数据传输采用UDP协议来发送数据包,UDP协议需要知道目标机器的IP及端口号,故在用户界面需要输入目标的IP及端口号。而在程序中,数据压缩完毕之后,读取目标IP及端口号实现数据包的发送。建立UDP服务M_PUDPSERVERNEWUDPSERVERM_PUDPSERVERBINDINGSNEWIPENDPOINTNEWPENDPOINTIPADDRESSPARSEM_PLOACALIPTEXT,INTM_PLOCALPORTVALUEM_PUDPSERVERPACKETRECEIVEDNEWPACKETRECEIVEDHANDLERM_PUDPSERVER_PACKETRECEIVEDM_PUDPSERVERSTART用户界面获得目标IP及端口信息M_PTARGETEPNEWIPENDPOINTIPADDRESSPARSEM_PREMOTEIPTEXT,INTM_PREMOTEPORTVALUE数据压缩完毕,发送数据包M_PUDPSERVERSENDPACKETENCODEDDATA,0,ENCODEDDATALENGTH,M_PTARGETEPSENDPACKET函数参数为压缩包名称ENCODEDDATA,偏移量0,压缩包大小ENCODEDDATALENGTH,目标IP及端口信息M_PTARGETEP。325数据接收、解压接收端收到数据包后,采用与发送端相同的压缩方式对其进行解压,最终得到解压后的数据名称DECODEDDATA。代码如下DECODEDDATAG711DECODE_ALAWEDATA,0,EDATALENGTH或者DECODEDDATAG711DECODE_ULAWEDATA,0,EDATALENGTH326播放WAVEOUT类可实现音频流的输出,调用M_PWAVEOUTPLAY函数可将解压后的数据通过有效的输出设备进行输出,实现音频流的播放。代码如下M_PWAVEOUTPLAYDECODEDDATA,0,DECODEDDATALENGTH33本章小结音频数据的数据量较大,传输过程中比较占用资源,故本设计采用G711压缩方式对音频流进行编解码,并通过UDP协议进行传输,建立的语音通信系统,实现了音频流的输入输出及压缩传输。第4章系统测试结果41硬件部分测试本设计硬件部分为蓝牙耳机,在电脑上安装了蓝牙模块及驱动,能实现电脑与蓝牙耳机直接的通信,如下图41所示。图41蓝牙驱动安装图42软件部分测试在VISUALSTUDIO2010开发环境下,使用CWINFORM设计便于用户使用的可视化UI界面。运行时界面如下图所示图42用户操作界面初始图输入设备、输出设备均能够获取当前电脑上可使用的有效设备,同时本地IP地址包括了本机地址以及内网分配的IP地址,端口的选择上由于不能与其他的冲突,故初值为一使用较少的端口号。以上配置完成之后,点击开始,界面变为下图所示图43用户界面本地配置完成图本地信息配置完毕后,为避免错误发生,输入设备、输出设备、编码标准均不能改变。43综合测试成功连接蓝牙耳机之后,运行用户操作界面,配置好本地及目标IP信息,即可点击开始按钮,运行程序。当目标IP与本地IP相同时,即可在本机上运行设备。图44系统运行测试图效果蓝牙耳机以及普通音频输出设备均可以播放麦克风输入音频流。当目标IP地址与本地IP地址不同时,要求两地均有有效的音频输入输出设备,且IP地址处于同一网段才能进行声音播放,如下图45所示。图45目标IP与本地IP不同测试图效果本地IP地址为1921681100,使用蓝牙耳机作为输入输出设备,目标IP为1921681106,使用麦克风和音响作为输入输出。经测试,两端均能接收到语音信息,效果理想,有较小杂音。第5章总结和展望51课题工作和总结经过一段时间的工作,终于完成了基于CWINFORM的语音通信系统的设计,项目所要求的功能全部达到。通过这次设计收获颇多,不仅是所作题目涉及到的软硬件知识还有更为重要的实际经验和过程中所发现的问题。接手题目后从互联网上对CWINFORM进行了详细的学习,并搜集了通过CWINFORM制作其他系统的设计,发现CWINFORM逐渐融入了人们的日常生活中,而且整个产业每年都会有逐渐递涨的产值而且技术还在不断发展和创新。在查阅了大量的资料后确定了题目的设计方案。整个设计采用CWINFORM做系统编程,通过UDP和WAVEIN类、G711编码方式,在实现这一设计的过程中所遇到的问题和困难给我留下了宝贵的经验和深刻教训。这些经验和教训是(1)设计之前应该进行大量的资料收集和分析,确定一个清晰的设计思路。(2)软件的编写不但要实现功能还要不断的优化、简练、易读。(3)由于第一次接触CWINFORM,对于其编程方式及语法规则都不了解,导致上手较慢。(4)蓝牙耳机采集语音信号的处理、压缩、保存方式、保存位置等也存在着一些问题。随着课题的进行,对CWINFORM的了解也越来越深入。认为CWINFORM技术也会进一步发展,CWINFORM应用将会更加广泛。设计结束了,但学习还在继续。我相信通过此次设计所得到的知识、心得、经验乃至感受都会让我在以后的日子里受益匪浅。52系统功能的拓展在信息化日益加速的今天,数字多媒体的应用越来越广泛,随着宽带网概念深入人心,数字多媒体进入到了一个更广阔的空间,许多应用课题都围绕着两者展开,其中可视电话、电话会议系统和视频会议系统发展迅速,这些都要涉及到多媒体数据通信。在多媒体数据通信中,要求有良好的实时性,能够对多媒体数据进行压缩、实时流传输等操作而音频的采集和实时性播放是视频会议系统中最关键的部分,本设将蓝牙应用和声音采集相结合,安装蓝牙驱动模块,将蓝牙耳机与电脑连接,增加通讯的可移动性,以MICROSOFTVISUALSTUDIO2010为开发环境,采用当前比较流行的C编程语言进行编码,将声音实时从蓝牙耳机录入,并经过一定的压缩编码技术进行网络传输,接收端接收数据后进行实时播放。CWINFORM还可以应用到很多领域包括RDLC,EXCEL,PDF,WORD,以及水晶报表(CRYSTALREPORT),微软的SQLREPORTINGSERVICES安装部署与开发使用总之,CWINFORM的优势不仅是在语音通信,其在诸多领域中亦潜力巨大,期待今后的进一步开发。致谢这次能够圆满完成毕业设计我首先要感谢我的指导老师洪利老师,感谢他在毕业设计期间对我的指导、勉励、和督导。同时我要感谢大学四年里教过我课程的老师们,感谢他们对我知识增长所付出的辛勤劳动。我还要感谢蒋晶晶、韩智明同学,感谢他在我不懂的技术的问题上给与的帮助与指导,在我走入瓶颈的时候能使我的前方豁然开朗。我所在的实验室的同学,我也要感谢你们。虽然大家来自不同专业相处时间也不长,但大家共同的爱好相同的目标使得大家互相扶持共同努力。最后我要感谢我所住宿舍的管理员阿姨们,感谢她们不论多晚回去都给我们开门让我们不至于露宿街头。还有学校的保安和厨师,你们是我安全完成毕业设计的保障。参考文献1刘辉,常婉纶基于C的WINFORM程序参数传递和同步显示的实现J现代电子技术,2010,33142文竹在CWINFORM程序设计课程中开展项目教学的实践J硅谷,2009,143斯琴巴图,杨利润CWINFORM中嵌入EXCEL实现复杂表格的显示和控制J软件导刊,2013,1244王彬基于C的WINFORM窗体传值方法探讨J电脑知识与技术,2013,175朱林丽,吴昊基于WINFORM的应用软件评分系统设计与研究J软件导刊,2013,1246熊凯,李言照,匡桂娟等CWINFORM中巧用FLASH实现地图向导J农业网络信息,2008,27杨莉用WINFORM实现客户端基础数据维护模块J电脑编程技巧与维护,2006,78况海龙,熊庆国基于串口服务器的声发射监测系统设计J电子设计工程,2013,21139张佩佩面向WINFORMCONTROL的自动化测试框架的设计与实现D200910周杨朋,赵正文,李瑶等ORACLE在基于WINFORM的测井标准井数据库系统中的应用J中国信息化,2013,12附录REGION蓝牙耳机语音采集PRIVATEVOIDM_PTOGGLEMIC_CLICKOBJECTSENDER,EVENTARGSEIFM_ISSENDINGMICM_ISSENDINGMICFALSEM_PWAVEINDISPOSEM_PWAVEINNULLELSEIFM_PINDEVICESSELECTEDINDEX1MESSAGEBOXSHOW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论