news 2026/4/16 11:57:20

Visual Basic 多媒体应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Visual Basic 多媒体应用

多媒体技术使得计算机具有类似人的视觉能力和听说能力,综合处理多媒体信息,包括文本、图形、图像和声音以及动画等。利用Visual Basic提供的MMControl控件,可以很方便地实现文字、图形、图像和声音等文件的播放。

MMControl控件在ActiveX部件中的描述为“Microsoft Multimedia Control 6.0”,添加到工具箱后的图标为

。添加到窗体中的MMControl控件,如图8.22所示。

图8.22 MMControl控件

该控件内含9个类似于录音机、VCD的按钮,从左到右分别是:Prev,Next,Play,Pause,Back,Step,Stop,Record和Eject。这些按钮都有其属性,可以使某个按钮有效或无效、可见或不可见,如Back按钮的BackEnabled,BackVisible属性。

为了很好地使用MMControl控件开发多媒体程序,就需要掌握该控件的属性。如表8.8所示,列出了MMControl控件的一些常用属性。

表8.8 MMControl控件的常用属性

属 性

描 述

Command

用于向多媒体设备发出命令,包含:Open,Close,Play,Pause,Back,Step,Stop,Record,Eject,Prev,Next,Seek,Save等。如,MMControl1.Command = "Open"(启动MCI)

DeviceType

指定多媒体设备的类型,有AVIVideo,CDAudio,DAT,WaveAudio,Sequencer等

FileName

指定要打开或保存的文件名

Notify

如果设置为True,则在下一条命令完成时产生一个回调事件(Done)。Done事件提供有用的反馈信息,以指出命令是否被成功地执行

Wait

确定是否等到下一条命令执行完后才将控制权还给程序

1. 播放视频文件

在开发多媒体应用程序时,经常要求播放视频文件。在播放之前必须使用Open命令打开MCI(Media Control Interface)设备,Open命令将激活MMControl控件上MCI设备支持的按钮,如播放、前一个、下一个等。

例如,设置一个视频播放器的界面,如图8.23所示。

图8.23 视频播放器界面

在窗体上添加一个MMControl1控件,设置AutoEnable属性为False,PrevEnable,NextEnable,BackEnable,PlayEnable,StepEnable和StopEnable属性为True。添加一个图片框Picture1、一个CommonDialog1控件,并设置CommonDialog1的Filter属性为“视频文件(*.avi)|*.avi”。

在Form_Load事件中指定多媒体设备的类型、要播放的视频文件的路径和名称等:

Private Sub Form_Load()

MMControl1.DeviceType = "avivideo"

CommonDialog1.ShowOpen

If CommonDialog1.FileName <> "" Then

MMControl1.FileName = CommonDialog1.FileName

End If

MMControl1.hWndDisplay = Picture1.hWnd

MMControl1.Command = "open"

End Sub

2. 播放CD音乐

利用MMControl控件可以播放CD音乐。例如,设计CD播放器界面,如图8.24所示。

为了使控制按钮在运行阶段不可见,可将MMControl1控件的Visible属性设置为False,并通过菜单命令实现各功能命令。另外,在窗体上添加两上标签,Label1用来显示在CD-ROM上一共有多少首CD曲目,Label2用来显示当前正在播放的是第几首CD曲目。

图8.24 CD播放器界面

编写Form_Load事件代码:

Private Sub Form_Load()

MMControl1.DeviceType = "CDAudio"

If Not MMControl1.Mode = 524 Then

MMControl1.Command = "close"

End If

MMControl1.Command = "open"

Label1.Caption = "共有CD曲目" & MMControl1.Track & "首"

Label2.Caption = "当前正在播放第" & "0" & "首CD曲目"

End Sub

动态显示正在播放的是第几首曲目的事件代码:

Private Sub MMControl1_StatusUpdate()

Label2.Caption = "当前正在播放第" & MMControl1.Track & "首CD曲目"

End Sub

实现按钮功能的菜单命令的代码比较简单,如“播放”的Click事件代码为:

MMControl1.Command = "play"

程序运行时,用户可以通过不同的菜单命令选择自己喜欢的曲目。

3. 播放Wave和Midi

在多媒体的应用中,经常碰到解说词与背景音乐的播放问题。由于在MMControl控件中Wave和Midi使用不同的播放设备,从而可以实现背景音乐和音效的同时播放。

图8.25 播放Wave和Midi的界面

例如,可以设计一个播放Wave和Midi文件的播放器,如图8.25所示。窗体中含有两个多媒体控件,其中MMControl1用于播放Wave文件,MMControl2用于播放Midi文件,二者的Visible属性均为False。两个对话框分别用于指定MMControl控件打开文件的类型、路径及文件名。两命令按钮数组Command1和Command2分别用于播放或停止播放两类文件。

由于MMControl控件不能自动关闭多媒体设备,因此必须在媒体文件播放完毕时,手工关闭设备,否则无法继续播放。在播放完文件时,可以将Notify属性设为True,并通过MMControl的Done事件关闭设备。

播放Wave和停播Wave按钮的Click事件代码为:

Private Sub Command1_Click(Index As Integer)

Select Case Index

Case 0 '播放Wave文件

MMControl1.DeviceType = "waveaudio"

CommonDialog1.ShowOpen

If CommonDialog1.FileName <> "" Then

MMControl1.FileName = CommonDialog1.FileName

End If

MMControl1.Command = "open"

MMControl1.Notify = True

MMControl1.Wait = False

MMControl1.Command = "play"

Case 1 '停止播放Wave文件

MMControl1.Notify = False

MMControl1.Wait = True

MMControl1.Command = "stop"

MMControl1.Command = "close"

End Select

End Sub

MMControl1控件的Done事件代码为:

Private Sub MMControl1_Done(NotifyCode As Integer)

MMControl1.Notify = False

MMControl1.Wait = True

MMControl1.Command = "close"

End Sub

用于播放Midi文件的命令按钮及Done事件代码,与Wave文件的播放控制相似,只是将设备类型改为:

MMControl2.DeviceType = "sequencer"

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 16:22:34

KeymouseGo终极指南:自动化操作从零到精通的完整方案

还在为每天重复点击鼠标、填写表单而烦恼吗&#xff1f;&#x1f914; 工作效率低下&#xff0c;时间都浪费在机械性操作上&#xff1f;现在&#xff0c;一款名为KeymouseGo的自动化神器可以帮你彻底解决这些痛点&#xff01; 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键…

作者头像 李华
网站建设 2026/4/13 12:05:18

Quorum NWR机制

Quorum NWR 解决 AP 系统强一致性需求 在 AP 型分布式系统中实现强一致性需求时&#xff0c;Quorum NWR 提供了一种灵活的解决方案&#xff0c;无需重构系统或迁移数据。以下是其核心原理和实现方法&#xff1a; N&#xff08;副本数&#xff09; 副本数指数据在集群中的副本数…

作者头像 李华
网站建设 2026/4/16 10:46:06

深入解析strrchr:字符串中的“末次侦探”

<摘要> strrchr是C标准库中一个功能独特且实用的字符串函数&#xff0c;它像一位从末尾开始工作的侦探&#xff0c;专门在字符串中查找指定字符最后一次出现的位置。本文将用生动的比喻&#xff08;如侦探故事、路标指示等&#xff09;通俗解释其功能&#xff0c;详细剖析…

作者头像 李华
网站建设 2026/4/16 10:42:30

AssetStudio GUI界面完整使用指南:Unity资源管理终极解决方案

AssetStudio GUI界面完整使用指南&#xff1a;Unity资源管理终极解决方案 【免费下载链接】AssetStudio AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles. 项目地址: https://gitcode.com/gh_mirrors/as/AssetStudio AssetStud…

作者头像 李华
网站建设 2026/4/16 11:50:41

达梦8数据库维护实战训练:守护企业数据核心

目录 导言 一、 基石篇&#xff1a;日常运维与健康监控 二、 进阶篇&#xff1a;性能优化实战 三、 应急篇&#xff1a;故障诊断与恢复 四、 高可用篇&#xff1a;架构保障 五、 安全篇&#xff1a;加固与审计 六、 实战训练场 总结 导言 达梦数据库管理系统&#xff0…

作者头像 李华
网站建设 2026/4/11 23:38:54

终极指南:如何使用decimal.js解决JavaScript精度问题

终极指南&#xff1a;如何使用decimal.js解决JavaScript精度问题 【免费下载链接】decimal.js An arbitrary-precision Decimal type for JavaScript 项目地址: https://gitcode.com/gh_mirrors/de/decimal.js 在JavaScript开发中&#xff0c;浮点数精度丢失是一个常见且…

作者头像 李华