第七章:多媒体编程本章要点:
使用多媒体控件处理音频文件
使用 GDI处理图形图像
初步接触动画设计
7.1多媒体播放
7.1.1
1使用微软媒体控件播放音频本例将制作一个基于 AxActiveMovie控件的播放器。通过文件打开对话框选择文件。 AxActiveMovie控件自身提供了一些按钮,使用这些按钮可以执行各种操作:
如播放、暂停、关闭等。
( 1)新建 Windows应用程序后,创建 Form1窗体。设置相关窗体属性
( 2)执行 【 工具 】 |【 选择工具箱项 】 命令,在 Com组件标签中选择
ActiveMovieControl Object选项,如下图所示将 ActiveMovieControl控件加载到工具箱在窗体添加 ActiveMovieControl Object控件,形成的界面如图所示。
( 3)添加时间处理程序。
2基于 AxMMControl控件制作 AVI动画播放器基于 AxMMControl控件制作 AVI动画播放器步骤如下:
( 1)新建 Windows应用程序后,创建 Form1窗体。向窗体添加一个 Button控件,设置 Button控件的 Text属性如下:
Button1.text=”打开”再添加一个 OpenFileDialog控件。
( 2)执行 【 工具 】 |【 选择工具箱项 】 命令,在 Com组件标签中选择 Microsoft multimedia Control Object选项,如图所示。
( 3)添加 Microsoft multimedia Control,如图所示。
( 4)添加 Button1的 Click事件过程。
Private Sub btnopen_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnopen.Click
OpenFileDialog1.Filter = "video(*.avi)|*.avi"
OpenFileDialog1.ShowDialog()
filename = OpenFileDialog1.FileName
If (Not filename.Equals("")) Then
AxMMControl1.FileName = filename
AxMMControl1.Command = "open"
End If
End Sub
7.1.2 使用 Windows媒体播放器控件播放音频在 Visual Basic,NET中可以引用 Windows Media Player 组件,
制作一个如图所示的多媒体播放程序。
具体操作是这样的:
( 1)新建 Windows应用程序后,创建 Form1窗体。
进行相关参数设置
( 2)执行 【 工具 】 |【 选择工具箱项 】 命令,在 Com组件标签中选择
Windows Media Player选项,如图所示。然后,添加 Windows Media
Playe控件
( 3)添加代码如下:
Private Sub btnopen_Click(ByVal sender As
Object,ByVal e As System.EventArgs) Handles
btnopen.Click
Dim filename As String
OpenFileDialog1.ShowDialog()
filename = OpenFileDialog1.FileName
AxMediaPlayer1.FileName = filename
End Sub
7.1.3 使用 API函数播放音频可以使用 Windows的 API函数来播放音频文件。
介绍其中两个,sndPlaySound函数和
micExecute函数。它们都是来自 Windows的
winmm.dll动态链接库。其中 sndPlaySound函数用于播放 *.wav文件,而 micExecute函数可以播放各种影音文件。
主要函数有:
使用 sndPlaySound函数使用 mciExecute函数使用 sndPlaySound函数
( 1)在 VB.Net中,调用 API函数必须先进行声明,它们的格式分别为:
Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal SoundName As String,ByVal Flags As Long) As Long
( 2)在程序中调用该函数来播放 *.wav文件:
sndPlaySound (“文件名,wav”,1 )
( 3)实现如图所示的界面,添加一个按钮控件,一个输入框控件和一个 OpenFileDialog控件,用来打开文件
( 4)添加源代码如下:
Public Class Form1
Declare Function sndPlaySound Lib "winmm.dll" Alias
"sndPlaySoundA" _
(ByVal SoundName As String,ByVal Flags As Long) As Long
Private Sub Button1_Click(ByVal sender As System.Object,ByVal
e As System.EventArgs) Handles Button1.Click
Dim filename As String
OpenFileDialog1.ShowDialog()
filename = OpenFileDialog1.FileName
TextBox1.Text = "正在播放 " + filename
sndPlaySound (filename,1)
End Sub
End Class
使用 mciExecute函数在上例中作如下修改:
1,声明 mciExecute以取代 sndPlaySound Declare
Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal
lpstrCommand As String) As Long
2,删除 sndPlaySound(filename,1),添加:
mciExecute(“Play”& filename)
通过如上修改后,点击 Button控件,找到相应文件即可播放各种影音文件
7.2图形与图像程序设计
7.2.1 图形的坐标系统在学习绘图之前,首先要了解有关 Visual Basic,Net的坐标系统,
以此才能掌握绘图的位置和大小。在 Visual Basic,NET 中,坐标以像素为单位表示。坐标系统是指在屏幕( screen)、窗体
( form)、容器( container)上定义的表示图形对象位置的平面二维格线,一般采用数对( x,y)的形式定位。其中,x值是沿 x轴点的位置,最左端是默认位置为 0。 y值是沿 y轴点的位置,最上端是默认位置 0,如图 7-16所示。
属 性 说 明
Locate.Top 对象 Y坐标
Locate.Left 对象 X坐标
Locate.Width 对象的宽度
Locate.Height 对象的高度
Locate对象属性如下
7.2.1 图形绘制
GDI+是 Windows XP操作系统中提供二维矢量图形、图像处理和版式的部分。 GDI+在 GDI(较早版本的 Windows中提供的 Graphics Device
Interface)的基础上进行了改进,添加了新功能并优化了现有功能。
GDI+函数位于 System.Drawing命名空间中。
处理图形包括两个步骤:
( 1)创建 Graphics对象。
( 2)使用 Graphics对象绘制线条和形状、呈现文本或显示与操作图像。
Graphics对象在创建后,可用于绘制线条和形状、呈现文本或显示与操作图像。与 Graphics对象一起使用的主体对象有:
( 1),Color 结构:表示要显示的不同颜色。
( 2),Pen 类:用于绘制线条、勾勒形状轮廓或呈现其他几何表示形式。
( 3),Brush 类:用于填充图形区域,如实心形状、图像或文本。
( 4),Font 类,提供有关在呈现文本时要使用什么字体的说明。
1.color
颜色的设置是绘图功能中非常重要的一部分,在,NET Framework中可以通过 Color对象类,ColorTranslator对象类,Color枚举来定义颜色方法名称 说 明
FromArgb
语法,Color.FromArgb ( Alpha,Red,Green,Blue)
功能:通过 Alpha可设置混色的阴影或透明效果,通过基本三色
Red,Green,Blue可以混出自行需要的颜色。四个参数值必须介于 0-255
例:将 Label1的背景色设为绿色,且设置 Alpha的值为 40
Label1.BackColor=Color.FromArgb( 40,0,255,0)
FromKnownCol
or
语法,FromKnownColor( ByVal color As KnownColor )
功能:设置所需的颜色例:将 Label1的背景颜色设置为黄色
Label1.BackColor=Color.FromKnownColor(KnownColor.Yellow)
Color对象属性使用 ColorTranslator对象的方法来设置颜色方法名称 说 明
FromOle
语法,ColorTranslator.FromOle( QBColor(颜色值))
功能:设置 QBColoryanse1值,指定的颜色值为 0-15
例:将 Label1的背景色设为黑色
Button1.BackColor = ColorTranslator.FromOle(QBColor(0))
FromHtml
语法,ColorTranslator.FromHtml(,HTML的颜色字符串”)
功能:使用 HTML的颜色字符串来设置颜色例,将 Label1的背景色设为白色
Label1.BackColor = ColorTranslator.FromHtml("#ffffff")
FromWin32
语法,ColorTranslator.FromWin32( &#十六进制值)
功能:使用十六进制值设置颜色例:将 Label1的背景色设为浅蓝色
Label1.BackColor = ColorTranslator.FromWin32(&HC0000F)
2.Graphics
Graphics用来创建画布对象。它就像是绘图时所使用的画布一般,可以供给画家在其中作画。使用 GDI+绘图时必须先创建一个画布对象,然后才可以使用绘图对象的方法在画布上作画。
Graphics对象的创建语法如下:
Dim myGraphics As Graphics
myGraphics =控件对象名称,CreatGraphics()
在指定的控件对象中添加一个可供绘图的对象
( myGraphics)。如下例:
Dim g As Graphics
g=Button1.CreatGraphics() ‘使用 Button1创建一个名为 g的画布对象
g=Label1.CreatGraphics() ‘使用 Label1创建一个名为 g的画布对象
Graphics对象的方法很多,如可以使用 clear方法清除画布,
使用 dispose方法将 Graphics对象从记忆清除。
常用的绘图方法有以下几种
1,DrawArc方法
2,DrawLines方法
3,DrawRectangle方法
4,DrawPolygon方法
5,DrawEllipse方法
3,Pen
Pen是画笔对象。就像是一支绘图时所使用的画笔,可以供给绘图命令在 Graphics画布对象上作画。创建的语法如下:
Dim Pen As Pen(颜色,粗细)。
4,Brush对象
Brush对象是用于填充图形形状(如矩形、椭圆形、
扇形,多边形和封闭路径)内部的对象。可用来绘制实心、渐变层 的图形,使得图形显得较有质感。
它包含有 HatchBrush,LineGradienBrush、
SolidBrush,PathGradienBrush对象 等,这些对象是包含在 Drawing2D的命名空间中。
7.2.1 图像的显示与处理
GDI+支持的图形格式有 BMP,GIF,JPEG,EXIF等图形文件格式。
DrawImage方法使用 Graphics对象的 DrawImage方法加载和显示图像。其步骤是:
( 1)创建 Image类
Bitmap是 Image类的一个新对象。该对象表示要显示的图像。该对象必须是从 Image类继承类的成员,如:
Dim myBitmap As New Bitmap(“c:\images\Gone Fishing.bmp”)
( 2)创建 Graphics对象
Dim g As Graphics=Label1.creatGraphics
( 3)调用 Graphics的 DrawImage方法显示图像
g.DrawImage(myBitmap,1,1)
DrawImage方法有多种重载方式,这里所用的方式是:
DrawImage(Image,Integer,Integer)