VB 版 (精华区)

发信人: bloom (├┝┞┟┠┡┢┣), 信区: VB
标  题: 八、用Visual Basic 6.0进行多媒体编程
发信站: 哈工大紫丁香 (2000年08月09日15:26:06 星期三), 转信

八、用Visual Basic 6.0进行多媒体编程
  用VB6可以进行多媒体编程吗?当然可以。VB的运行效率虽然低于VC、Delphi,但是
用于多媒体编程仍然是胜任的,尤其VB从5.0开始提供了本地代码编译器,其运行效率已
经突飞猛进,今非昔比。
  其实所谓多媒体,其“多”不过是声音、图像、触摸屏等等技术的有机组合而已。
以下简单讲解如何显示图像、播放AVI视频动画等的方法:
  1.显示图像
  您看到了VB6工具箱上的 PictureBox 和 Image 控件图标了吗?它们都可以用于显
示图像,包括JPEG、BMP、GIF、WMF等多种流行的图像文件格式。
  请建立一个窗体,建立一个 PictureBox 控件,将其 Picture 属性设置为预显示的
文件的全称路径名。图像就显示出来了。
  为了控制其在运行时刻的变化,一般可以采用如下办法:
  (1)改变其 Left、Top 值来移动其位置,达到动画的效果;
  (2)通过创建两个 PictureBox 控件,一个可见,一个不可见,并调用其PaintPict
ure 方法来将不可见控件上的图像逐步复制到可见的控件上。采用这种方法可以做到图
片的擦入擦出、百叶窗式的画面切换等效果;
  (3)通过对PictureBox 的 DC 值操纵,可以动画调色板,达到淡入淡出的效果。现
在的程序一般不再如此处理,而是将 PictureBox 分割成很小的块块,然后随机将其擦
除或显现来达到淡入淡出的效果;
  在实践中,大家一定会发现实现各种漂亮效果的方法。请到时一定要给我来信啦(B
lueSkit@990.net)。
  2.播放AVI视频
  播放AVI视频可以采用Windows 9x提供的MCI 控件。媒体控制接口 (MCI) 可以用于
播放或录制音频、视频、波形文件等多种媒体信息。从概念上说,这种控件就是一组按
钮,它被用来向诸如声卡、MIDI 序列发生器、CD-ROM 驱动器、视频 CD 播放器和视频
磁带记录器及播放器等设备发出 MCI 命令。
  使用 MCI 控件记录音频信号之前,应打开一个新的文件。这样就可以保证记录声音
的数据文件格式与系统记录格式完全兼容。在关闭 MCI 设备之前,还应该发出 MCI Sa
ve 命令,把记录的数据保存到文件中去。MCI 控件允许通过多种方法编程: 在运行时
,控件是否可见;可以增加或完全重新定义控件中按钮的功能等;也可通过MCI的方法或
属性来控制媒体的播放。
  下面的代码演示了播放一个AVI文件的过程。将这些代码放到 Form_Load 过程,应
用程序就可以使用 MCI 控件来对文件 Test.AVI 进行播放。在试运行这个示例之前,首
先应创建一个包含 MCI 控件的窗体。
  Private Sub Form_Load ()
    Set properties needed by MCI to open.
    MMControl1.Notify = FALSE
    MMControl1.Wait = TRUE
    MMControl1.Shareable = FALSE
    MMControl1.DeviceType = “ MMMovie”
    MMControl1.FileName = “ C:\Test.AVI”
    '打开 MCI MMMovie 设备。
    MMControl1.Command = “Open”
  End Sub
  为了正确管理多媒体资源,在退出应用程序之前,必须关闭已经打开的 MCI 设备。
将下面的语句放到 Form_Unload 过程:
  Private Sub Form_Unload (Cancel As Integer)
    MMControl1.Command = “Close”
  End Sub
  通过MCI还可以完成很多很多事情,只要有相应的VCD/DVD驱动程序,您甚至可以在
自己的程序里播放VCD/DVD。
  3.字符动画
  WinAmp 的版权画面是不是很“眩”?用VB实现非常简单。
  首先建立一个窗体,在此窗体上建立一个 Frame 容器控件,根据需要,在此控件上
建立若干个 TextBox或 Label或 Image 控件,输入您的版权信息或其它想表现的文字、
图案。
  然后再建立一个 Timer 控件,将Interval 设置为 10,然后在其 Timer 事件中操
纵 Frame 的位置就可以有动画效果了:
  Private Sub Timer1_Timer()
    Frame1.Top = Frame1.Top - 20
    DoEvents
  End Sub
  不过,你应该加入适当的判断和错误处理语句以免程序表现出火。
--
├┝┞┟┠┡┢┣ ※↑

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.226.226]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.626毫秒