资源描述
目录
1 vb简介………………………………………………………………………………1
2多媒体播放器的开发设计…………………………………………………………2
2.1设计要求…………………………………………………………………………2
2.2设计方案…………………………………………………………………………2
2.3基本原理…………………………………………………………………………3
3 设计方案的实现……………………………………………………………………5
4程序代码 ……………………………………………………………………………5
5 运行结果……………………………………………………………………………10
6心得体会……………………………………………………………………………13
7参考资料……………………………………………………………………………14
1 VB简介
Visual 意为可视的、可见的,指的是开发像Windows操作系统的图形用户界面(Graphic User Interface,GUI)的方法,它与其他编程软件不同的是不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可。应该说,这是一次质的飞跃,是一次编程技术的革命。
Basic 实际上是一个短语的缩写,这个短语就是 Beginners' All-Purpose Symbolic Instruction Code ,其中文意思为“初学者通用符号指令代码”。
Visual Basic 6 有学习版、专业版和企业版三种版本,以满足不同的开发需要。学习版适用于普通学习者及大多数使用 Visual Basic 开发一般 Windows 应用程序的人员;专业版适用于计算机专业开发人员,包括了学习版的全部内容功能以及Internet控件开发工具之类的高级特性;企业版除包含专业版全部的内容外,还有自动化构件管理器等工具,使得专业编程人员能够开发功能强大的组骨子里分布式应用程序。
随着版本的提高,Visual Basic的功能也越来越强。自从5.0版,Visual Basic 推出了中文版,与前个版本相比,其功能有了很大提升。
但是,功能再强大,Visual Basic 仍然有一个缺点:在没有MSVBVM**.DLL的计算机上必须安装所需的DLL文件(同样Visual C++在没有MSVCRT*.DLL情况下亦无法运行)。不过在Windows 2000之后,这个DLL就被预置到操作系统中了,一般来说,程序如果只使用了VB内部的控件和对象,基本上不会有太大的问题。
在21世纪初,Microsoft 公司推出 Visual Studio .NET 2003,它与 Visual Basic 之间有了重大变化,Visual Studio 为各种编程工具做了一个平台,Visual Basic.NET 可在这种平台上运行。相对于传统VB,有很大的不同。VB .Net首次使用.Net构架进行可视化编程,并且能很好地与COM构架兼容,Visual Studio .NET 2003 应用 .NET Framework 1.1 。
2005年 Visual Studio 2005 则运用了 NET 2.0 的技术,更加的方便了程序员的工作。可是新的程序对系统配置要求也较高,需要微软.Net Framework 2.0以上的.Net构架支持。
2007年12月,微软(Microsoft)推出了Visual Studio 2008 Beta 2 发生了重大的变化(见附图)在代码输入的时候,可以比VB2005快很多,在非特殊的情况下,VB2008都会自动开启 自动完成关键字 这个命令 而且支持最新的 .NET Framework 3.5 SP1 Beta
微软开发了一系列有关VB的脚本语言:
Visual Basic for Applications,即VBA,包含在微软的应用程序中(比如Microsoft Office),以及类似WordPerfect Office这样第三方的产品里面。VBA这样嵌入在各种应用程序中看起来有些矛盾,但是它的功能和VB一样强大。
VBScript是ASP的默认语言,还可以用在Windows脚本编写(Shell Script)和网页编码(HTML)中。尽管它的语法类似于VB,但是它却是一种完全不同的语言。VBS不使用VB运行库运行,而是由Windows脚本宿主(wscript.exe - Microsoft Windows Based Script Host)解释执行。这两种语言之中的不同点影响ASP网站的表现。
当微软准备开发一种新的编程工具的时候,第一决定就是利用最抢手的 VB6 来进行修改,或者就是重新组建工程开发新工具。微软后来开发了VB的继任者Visual Basic .NET,同时也是.NET平台的一部分。VB.NET编程语言是一种真正的面向对象编程语言(VB4-VB6 只能称为基于对象而不是面向对象,最明显的特征就是 VB4-VB6 都不支持类的继承),和传统 Visual Basic 并不完全兼容。[2]
2多媒体播放器的开发设计
2.1设计要求
内容: 多媒体播放器是根据计算机用户使用系统时的实际需求而开发,完全能够实现用户对计算机多媒体文件的查询和播放。
要求: 根据多媒体播放器的要求,要求系统具有以下功能:选取多媒体文件;播放多媒体文件;停止播放多媒体文件;打开字幕功能;关闭字幕功能;打开CD驱动器功能;关闭CD驱动器功能;添加播放列表功能。
2.2设计方案
Windows Media Player 控件(msdxm. ocx) 支持的文件类型比较丰富,可以播放WAV、MID、MP3 、WMA、AIF、ASF、MPEG、MPG、AVI、MOV、DAT、RMI 等多媒体文件。在VB6. 0SP5 下利用这个控件实现自动连续循环播放以及启动时自动从上次退出时的文件处继续播放多媒体文件的技术。
多媒体技术的基本工作原理是:多媒体终端通过不同接入层网络(固定NGN、移动NGN、Internet),接入传输层IP分组网络,在控制层IMS/SoftSwitch等SIP Proxy设备的控制下,通过业务层的逻辑控制实现多媒体业务及应用。其结构下图所示:
图1多媒体结构图
MPlayer是一款开源的多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流作业系统使用,例如Linux和其他类Unix作业系统、微软的视窗系统及苹果电脑的Mac OS X系统。MPlayer是建基于命令行界面,在各作业系统可选择安装不同的图形界面。
MPlayer是Linux 上的最强大的电影播放器(也能跑在许多其它Unixs上,甚至非x86CPU上)。如今它也有了在微软视窗操作系统和苹果Mac OS中的版本。它能使用众多的本地的,XAnim,RealPlayer,和Win32 DLL编解码器,播放大多数MPEG,VOB,AVI,OGG,VIVO,ASF/WMV,QT/MOV,FLI,RM,NuppelVideo,yuv4mpeg,FILM,RoQ文件。你还能观看VideoCD,SVCD,DVD,3ivx,RealMedia,和DivX格式的电影(你根本不需要avifile库)。
MPlayer的另一个大的特色是广泛的输出设备支持。它可以在X11,Xv,DGA, OpenGL,SVGAlib,fbdev,AAlib,DirectFB下工作,而且你也能使用GGI和SDL(由此可以使用他们支持的各种驱动模式) 和一些低级的硬件相关的驱动模式(比如Matrox,3Dfx和Radeon,Mach64,Permedia3)。他们大多数支持软件或者硬件缩放,因此能在全屏下观赏电影。MPlayer还支持通过硬件MPEG解码卡显示,诸如DVB 和DXR3与Hollywood+。可以使用European/ISO 8859-1,2(匈牙利语,英语,捷克语等等),西里尔语,韩语的字体的清晰放大并且反锯齿的字幕(支持10种格式),和on screen display(OSD)。
MPlayer是Linux 上一款非常优秀的电影播放器,能够播放大多数视频文件,如MPEG,VOB,AVI,OGG,VIVO,ASF/WMV,QT/MOV,FLI,RM,NuppelVideo,yuv4mpeg,FILM,RoQ 等。而且它的另一个优点是可移植性好,现在常用的微软的Windows平台和苹果的Mac平台都有它的身影。不仅如此,Mplayer还可以移植到很多非X86的平台上。
2.3基本原理
MCI(媒体控制接口)是Microsoft公司为实现Windows系统下设备无关性而提供的媒体控制接口标准。用户可以方便地使用MCI控制标准的多媒体设备。
MCI包含在Windows多媒体扩展的MMSYSTEM模块中,用来协调事件间以及MCI设备驱动程序间的通讯,提供了与设备无关的接口属性。通常应用程序是通过指定一个MCI设备类型来区分MCI设备,设备类型指明了当前实际使用设备的物理类型,不同的设备类型使用不同的控件属性来进行描述(见附表1)。
从使用的控制方式上来说,MCI设备分为复合和简单两类。一个简单MCI设备并不需要设备元素。例如,CD音频和音碟机就是在一个已经安装好了的硬盘上工作的,它们不需要应用程序为其操作的媒体内容提供任何信息。但对于复合的MCI设备,就需要应用程序提供设备元素,即一个包含全部路径名的源数据文件或目的文件。
Visual Basic语言的Custom Control(用户控制部件)概念体现了当今软件设计的发展潮流--面向对象技术,编程者可以在Visual Basic的工具箱(Toolbox)中嵌入各式各样五花八门的用户控件,每个用户控制部件都有一定的属性和操作方法,编程者通过属性的设置和方法的控制完成特定的功能。为了方便地控制多媒体,在专业版Visual Basic工具箱中提供了一个用于多媒体目的的用户控件--MCI.OCX。
多媒体MCI控件MCI.OCX专用于对多媒体控制接口MCI设备的多媒体数据文件实施记录和回放,从目的效果上来说,该控件通过一组按钮来发出种种设备控制命令以实现对诸如:音频面板、MIDI音序器、CD-ROM驱动器、音频CD播放机、录像带播放、录音带录放等设备的控制。在Visual Basic程序设计时,当在表中加入多媒体MCI控件时(在工具箱内双击MCI控件),则出现下列按钮群:向前(Prev)、向后(Next)、播放(Play)、暂停(Pause)、返回(Back)、单步(Step)、停止(Stop)、记录(Record)和出带(Eject)。
应用程序对MCI的这组按钮操作非常灵活方便,如当我们打开一个MCI设备后,就可以根据该设备类型的属性随时从控件中选择合适的状态按钮来表示即刻设备的物理状态。所有MCI控件可以有下列几种方式来编程:⑴控件及其各按钮的可见性和使能性;⑵可变或完全对控件进行重新定义;⑶在一个窗口表格中可以同时控制多个设备。
在Visual Basic3.0专业版中,多媒体控件MCI.OCX(在Visual Basic 3.0和4.0中,多媒体控件的扩展名为.VBX)是作为可选用部件提供的。为了使用它,首先要执行FileAdd File菜单命令,把Windowssystem目录下的MCI.OCX加入到工具箱(Toolbox)中,这时会在工具箱中出现相应的MCI.OCX图标。如果使用的是Visual Basic4.0版(或5.0版),选择oolsCustom Controls菜单或直接键入Ctrl+T,即可出现对话框,在Available Controls列表框中选中Microsoft Multimedia Controls条目旁边的检查框,同样会在工具箱中出现MCI.OCX图标。
双击工具箱中的多媒体控件MCI.OCX图标,调用MCI.OCX控件之后,表单FORM中将出现一排灰色的媒体控制按钮(九个)。
多媒体控件MCI.OCX包含有一组高级的与设备无关的控制命令。在使用该多媒体控件时,首先用OPEN命令打开MCI设备(多媒体设备)并建立一个与之对应的文件,以便来进行录或放等操作(但是对诸如CDAudio、VCR和录像带不能使用相应文件)。一旦设备打开成功,就可以向它发出各种操作命令(见附表的按钮命令)来完成指定的工作任务。最后记住,要用Close命令来关闭设备和数据文件。
使用MCI.OCX来进行多媒体应用程序开发是很方便的,因为大多数属性都是容易理解的,其中Command属性尤为重要,它是在运行过程中向多媒体设备发命令。格式为:
Form.Mmcontrol.Command=cmdstring$
其中,cmdstring$变量是如下可执行命令名:Open、Close、Play、Pause、Stop、Back、Step、Prev、Next、Seek、Record、Eject、Sound和Save。一旦给其命令设置,它就立刻执行,所发生的错误存在Error属性中。
下面以播放DEMO.WAV(波形文件)文件为例,说明Visual Basic多媒体应用程序设计步骤。
首先,创建一个包含有多媒体控件(MCI.OCX)的表格(Form),于是屏幕上显示出形状类似录音机的控制键,不过这时多媒体控制部件是不能马上拿来用的(各键呈灰色),须通过程序代码来改变键的状态。
其次,在Form_Load过程中,插入相应程序代码。如下
Sub Form_Load()
‘在发出 OPEN 命令前要设置多媒体设备的属性
Form1.MMControl1.Notify=False
Form1.MMControl1.Wait=True
Form1.MMControl1.Shareable=False
Form1.MMControl1.DeviceType="WaveAudio"
Form1.MMControl1.FileName="c:windowss
Mmdatademo.wav"
Form1.MMControl1.Command="Open"
End Sub
3 设计方案的实现
3.1 自动连续循环播放多个文件
通过对通用对话框控件(COMDL G32. OCX) 的有关属性进行设置,可实现按选择的文件类型在列表框中显示符合条件的文件,用户可在该列表框中显示符合条件的文件,用户可在该列表框中选择一个文件,或选择连续或不连续的几个文件,若选择了多个文件,则按顺序连续循环播放。开始播放后,组合框和窗体的标题栏同时显示正在播放文件的文件名。
3.2 自动记忆播放目录和正在播放的文件的路径
退出播放器时,程序自动将用户选择的目录保存到Windows 的注册表中,以便下次选择要播放的文件时,在打开对话框中,直接显示的是上次选择的目录。同时,自动将用户选择的文件清单保存到文件中,以便下次启动该程序时,可以直接从退出时正在播放的那个文件开始继续播放,这样就能实现每次启动播放器,首先播放的是上次退出时播放的那个文件。这样做就使程序具有了记忆功能。
3.3 用户自定义播放顺序
单击下一首按钮,开始播放下一个文件,单击上一首按钮,开始播放上一个文件。单击暂停按钮,则播放器暂停播放,同时暂停按钮变为开始按钮,单击开始按钮,播放器从暂停处继续播放,同时开始按钮恢复为暂停按钮。单击组合框右边的下拉箭头,可以看到正在播放的文件列表,要想换一个文件播放,直接单击文件名即可。用户也可以直接打开播放列表文件,用文本编辑器编辑播放文件的顺序。
4 程序代码
4.1 界面布局设计
新建一个窗体Forml , 在上面画一个组合框Combol ,设置其Style 属性2 - DropdownList ,画五个命令按钮(打开、暂停、关闭、上一首、下一首) ,一个通用对话框(Common Dialog) 控件,一个媒体播放器(Windows Media Player) 控件。调整好控件在窗体中的位置。
4.2 系统初始化
Private Declare Function GetSystemDirectory Lib″
Kernel32″Alias″GetSystemDirectoryA″(ByValpBuffer
As String ,ByVal nSize As Long) As Long 返回Win2
dows \ system 所在的文件夹
Private WinSysPath As String
Private Select FName (1000)As String
Private SelectNum As Integer , Next Playing As
Integer
Private PreviousPath As String 此变量保存用户上次选择的目录,其值保存在Windows 注册表中
4.3 自动从上次退出时的文件处继续播放
要实现此功能,可以在窗体的Load 事件中编写
如下代码:
Dim tmp1 As String
Dim tmp2 As Integer
MediaPlayer1. AutoRewind = True
MediaPlayer1. AutoStart = True
MediaPlayer1. ShowStatusBar = True
MediaPlayer1. ShowDisplay = True
MediaPlayer1. AutoSize = False
Combo1. Locked = False
PreviousPath = GetSetting (″ MyPlayer″,″
PlayMM″,″Last Path″,″NoData″)
以下代码将上次选择的多媒体文件(保存在WinSysPath 中) 读出来,放Select FName 数组中,并开始播放
tmp1 = Space (260)
tmp2 = GetSystemDirectory(tmp1 ,Len (tmp1) )
WinSysPath = Left (tmp1 ,tmp2)
WinSysPath = WingSysPath +″\ Inventory. txt″
Inventory. txt 文件保存正在播放文件的列表。
On Error GoTo Errhandler
SelectNum = 0
Next Playing = - 1
Open WinSysPath For Input As # 1
Do While Not EOF(1)
Line Input # 1 ,Select FName (SelectNum)
\ ComboL. Addltem Mid ( Select FName ( Select2
Num) , InStrR ev (Select FName (SelectNum) ,″\ N) +
1)
SelectNum = SelectNum + 1
Loop
Close # 1
MediaPlayerl EndOfStream (0 &)
Errhandler :
If Combol. ListCount = 0 Then′Inventory. txt 文件不存在或播放列表为空
Combol. List (0) =“没有可选项目”
End If
Combol. Listlndex = 0
4.4 选择播放序列
Private Sub Command1 Click ()
Dim FName As String
Dim i As Integer , j As Integer
Dim ThePath As String
Dim tmp As String
CommonDialog1. CancelError = True
On Error GoTo Errhandler
允许多选,所有选择的文件名之间用空格分隔,保存在FileName 中
CommonDialogl. Flags = cdlOFNAllowMultiselect
CommonDialogl. InitDir = IIf ( PreviousPath =″o2
Data″, ″C: \ WINDOWS″,PreviousPath)
CommonDialogl. Filter =″3 . mpeg| 3 . mpeg| 3 .
mpg| 3 . mpg| 3 . avi| 3 3 . AVI| 3 . wav| 3 . WAV|
3 . mid| 3 . MID| 3 . mp3 | 3 . MP3 | 3 . mov| 3 .
MOV| 3 . dat| 3 . DAT| 3 . RMI| 3 . rmi| 3 . 3 | 3 .
3 ″
CommonDialogl. MaxFileSize = 32767 当同时选择许多文件时默认的260 放不下,故要大点,这是最大的值
CommonDialog1. ShowOpen
FName = CommonDialogl. FileName
下面代码将选择的若干文件名分开,放在数组
Select FName 中
If InStr (FName , Chr (32) ) = 0 Then′若只选择一个文件, FName 中没有空格,否则文件名之间用空格分隔,若文件在根日录,则路径形如E: \ ,否则形如E: \ abc \ 123
SelectNum = 1
Select FName (0) = FName
ThePath = Left ( Fname , InStrRev ( Fname ,″\ ″)
- 1)
Else
ThePath = Left ( FName , InStr ( FName , Chr
(32) ) - 1) +″\ ″
FName = Mid(Fname , InStr (Fname ,Chr (32) ) +
1) SelectNum = 0
J = 1
tmp = Space (0)
For i = 1 To Len (FName)
IfMid(FName , i ,1) = Chr (32) Then
Select FName (SelectNum) = ThePath + tmp
SelectNum = SelectNum + 1
tmp = Space (0)
Else
tmp = tmp + Mid(FName ,i ,1)
End If
Next i
Select FName (SelectNum) = ThePath + tmp
SelectNum = SelectNum + 1
End If’分隔结束
Combol. Clear
For i = 0 To SelectNum - 1 此循环将选中的文
件显示在组合框中
Combol. Addltem Mid ( Select FName (i) , In2
StrRev(Select FName (i) ,″\ ″) + 1)
Next i
Combol. Listlndex = 0
Next Playing = 0
Me. Caption = Combol . Text
MediaPlayerl . FileName = Select FName (0)
SaveSetting″MyPlayer″,″PlayMM″,″Last Path″,″
ThePath″
Errhandler :
End Sub
4.5 暂停播放
Private Sub Command2 Click ()
If Command2. Caption =“暂停”Then
Command2. Caption =“开始”
MediaPlayerl. Stop
Else
Command2. Caption =“暂停”
MediaPlayerl . Play
End If
End Sub
4.6 关闭播放器
退出之前,将用户选中的文件保存起来,以便下一次启动该程序时,可以直接从保存时的文件开始继续播放,为了做到这一点,在将播放列表写入文件时,必须让正在播放的那个文件首先写入文件中,然后是它后面的,到底后再绕回来,按这个顺序写入。
因为程序启动后,是按文件电的列表顺序从前向后进行播放的,故每次启动都省先播放的是退出之前播放的那个文件。
Private Sub Command3 Click ()
Dim tmpl As Integer
On Error GoTo Errhandler
tmp1 = 0
Open WinSysPath For Output As # 1
Do While tmpl < SelectNum
Print # 1 ,Select FName (Next Playing)
tmp 1 = tmp 1 + 1
Next Playing = (Next Playing + 1) ModSelect2
Num
Loop
Close # I
Errhandler :
Unload Me
End Sub
4.7 上一首
Private Sub Commando Click (y
Next Playing = IIf (Next Playing - 1 < 0 , Select2
Num - 2 , Next Playing - 2)
MediaPlayerl - EndOfStream (0 &)
End Sub
4.8 下一首
Private Sub Commands Click ()
MediaPlayerl EndOfStream (0 &)
End Sub
4.9 在组合框中选择播放文件
Private Sub Combol Click ()
Next Playing = Combol. Listlndex - 1
MediaPlayerl EndOfStream (0 &)
End Sub
4.10 卸载播放器
Private Sub Form QueryUnload (Cancel AsInte2
ger , UnloadMode As Integer)
Command 3Click
End Sub
4.11 切换文件
Private Sub MediaPlayerl - EndOfStream(ByVal2
Result As Long) 播放文件结束时触发此事件
On Error GoTo Errhandler
Next Playing = (Next Playing + 1) ModSelectNum
MediaPlayerl. FileName = SelectFName(NextPlaying)
Combol. Listlndex = Next Playing
Me. Caption = Combol. Text
Command2. Enabled = True
Command2. Caption =“暂停”
Errhandler :
End Sub// DynSplitView2.cpp : implementation file
//
5 运行结果
Mplayer是我们所设计的多媒体播放器的核心,它支持的视频格式直接影响到整个播放器的性能。下面将从这方面入手,对它的性能进行必要的测试。
Mplayer的解码库是它支持的视频格式的决定因素。在X86平台的Linux操作系统中,Mplayer拥有丰富的解码库,但是很大一部分都是以非开源的形式提供的。所以将Mplayer移植到OMAP3530平台后,仅仅有为数不多的几个开源的库可以继续使用。
移植以后的Mplayer的视频解码器包括FFmpeg DivX/libavcodec、libmpeg2和XviD等比较常用的库,可以支持H263、MJPEG、RV10、DivX3、DivX4、DivX5、MP41、MP42、WMV1、WMV2、HuffYUV以及MPEG和AVI编码格式编码的视频流。
而通俗的讲,常见的媒体类型,除了RM格式和QuickTime格式以外,移植后的Mplayer基本都可以支持的。
下面是播放各种格式视频的截图:
图2 播放flv格式视频
图3播放avi格式视频
图4 播放mpeg格式视频
图5播放mpg格式视频
6心得体会
学习VB程序设计的方法保持良好的学习心态,要有自信,自强,积极主动学习.克服畏难情绪,树立学好程序设计的信心要有良好的学习习惯。VB程序设计的入门学习并不难,但却是一个十分重要的过程,因为程序设计思想就在这时形成的,良好的程序设计习惯也在这个阶段养成。学习程序设计要注重理解一些重要的概念。
VB程序设计本身并不复杂,翻开一本程序设计学习的书籍,看到的无非就是变量,函数,条件语句,循环语句等概念.但要真正能进行程序设计,需要深入理解这些概念.因此,在 程序入门阶段还是应该重视概念的学习。
程序设计入门阶段要经常自己动手抄写或编写一些小程序,亲自动手进行程序设计是创造性思维应用的体现,是培养逻辑思维的好方法.因此一定要多动手编写程序,而且要从小程序开发开始,逐渐提高写程序的能力。
多看别人设计好的程序代码,包括教材上的例题程序.在读懂别人程序后,要想他为什么这么设计能不能将程序修改完成更多的功能 则可以学到别人优秀的东西,帮助自己 提高自身水平。
程序设计课是高强度的脑力劳动,不是听会的,也不是看会的,而是练会的.
只有自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,学起来才比较从容.等你在编写大量程序之后,我想过二级肯定没问题,不过能不能做到真知灼见,运用自如我就不敢说了.动手能力的培养是这门课和以往课程最大的不同之处.重点放在思路,算法,编程构思和程序实现上.语句只是表达工具,要求堂上积极思考,尽量当堂学懂,并做到灵活应用.上机调试程序应注意的几点:
1、上机前应认真把实验题在用纸上做一做(包括窗体界面设计,事件代码的编写等)
2、每次上机后应总结,把没有搞清楚的问题记录下来,请教老师或同学.
3、平时应多抽课余时间多上机调试程序.注意系统的提示信息,遇到问题多问几次为什么。
移植的过程看似简单,但是需要付出很大的努力。
在移植的过程中,尤其是在configure参数的配置上出现了很多问题。在查询了configure的帮助信息和网上的一些相关资料后,大部分问题都顺利解决了。还有小部分自己无法解决的问题,在指导老师的帮助下也都顺利解决。
在解决问题的过程中,掌握的许多Mplayer的相关知识和应用技巧。
我一直觉得课设的目的不在于做出什么、做成什么,这充其量仅仅是一个最起码的要求。通过课设的实际操作,可以增强我们自己发现问题、分析问题进而解决问题的能力。很多时候我们都意识不到这一点。在写的时候一边总结一边分析,很多课设过程中没有搞明白的问题大都豁然开朗。
课设的过程中遇到的很多问题都是通过向同学求助,或者在一些技术论坛上发帖子求助解决的,而毕设完成时才知道自己通过毕设结识了很多的良师益友。
7参考资料
[1] 张海藩.软件工程导论(第五版)[M].北京:清华大学出版社,2008:12-224.
[2] 肖磊,陈重,谷守斌,严成旺,王志坚.流媒体技术与应用完全手册[M].重庆:重庆大学出版社,2003:35-327.
[3] 孟庆昌、牛欣源.Linux教程[M]. 北京:电子工业出版社,2007:34-298.
[4] W.Richard Stevens.UNIX环境高级编程[M].北京:人民邮电出版社,2006:40-713.
[5] 陈莉君,张琼声,张宏伟.深入理解LINUX内核(第三版)[M].北京:中国电力出版社,2007.40-556.
[6] K R Rao, Zorans S Bojkovic and Dragorad A Milovanovic.Multimedia Communication Systems: Techniques,Standards, and Networks.Pearson Education Inc.北京:清华大学出版社影印版.2003.
展开阅读全文