设为首页 | 收藏本站
首页>IT学院>软件编程>正文
用VB播放Avi、Wave、midi文件
WWW.DBIT.CN 2006-9-5 0:41:38 热度:
 
Csdn上已经有好多朋友问过诸如:
“如何播放Avi、Wave、midi文件”、:
“谁知道用api播放avi,mpg的详细方法?要可以设定将图像放置到设定的窗体中”、
“如何同时播放两个Wav文件”
的问题,
其实用一个类模块就一切搞定,不需要什么控件之类的东西
下面这个类模块,我研究后将它修改得更好用了
将下面这个类模块存为Mmedia.cls
'----------------------------------------------------
Option Explicit
'--------------TrueZq 最新更新2001-01-12---------------------
'文件名: MMedia.cls
'说明: : 一个多媒体类,能播放Avi、Wave、Midi文件
'用法:
'Dim Multimedia As New Mmedia
'Multimedia.mmOpen "c:\test.wav"
'Multimedia.mmPlay
'!记住:在程序结束时,一定要用Set Multimedia=nothing释放资源!!!
'-----------------------------------------------------
' -=-=-=- 属性 -=-=-=-
' sFilename 当前的文件名
' nLength 文件长度(只读)
' nPosition 当前位置
' sStatus 当前状态(只读)
' bWait True/False.决定是否等待播放完
' -=-=-=- 方法 -=-=-=-=-
' mmOpen 打开要播放的文件
' mmClose 关闭当前文件
' mmPause 暂停
' mmStop 停止 停止后可以跳到开始再次播放
' mmSeek Seeks to a position in the file
' mmPlay 播放
'--------------------------------------------------------------
Private sAlias As String '别名
'Private hWnd As Long
Private sFilename As String ' 当前的文件名
Private nLength As Single ' 文件长度

Private nPosition As Single ' 当前位置
Private sStatus As String ' 当前状态
Private bWait As Boolean ' 决定是否等待播放完
Const WS_CHILD = &H40000000
'------------ API 声明 -------------
Private Declare Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" (ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, ByVal uReturnLength As Long, _
ByVal hwndCallback As Long) As Long
'Private Declare Function GetActiveWindow Lib "USER32" () As Integer
'当sTheFile是一个Avi文件时,参数hWnd指定动画在哪里播放
'若hWnd=0,则新开一个窗口播放动画。
'如果听不到Midi音乐,请在Windows下用媒体播放器测试一下。
'文件名不能带空格
Public Sub mmOpen(ByVal sTheFile As String, Optional hWnd As Long = 0)
Dim nReturn As Long
Dim sType As String '文件类型
Static nNum As Integer

If sAlias <> "" Then '关闭开始打开的文件
mmClose
End If

If (Dir(sTheFile) = "") Then '判断是否是一个存在的文件
sFilename = "文件" & sTheFile & " 不存在!"
Exit Sub
Else
sFilename = sTheFile
' nNum = nNum + 1
End If
' Stop
sAlias = sFilename '用文件名作别名,避免别名冲突!
' 判断文件类型
Select Case UCase$(Right$(sTheFile, 3))
Case "WAV"
sType = "Waveaudio"
Case "AVI"
sType = "AviVideo"

Case "MID"
sType = "Sequencer"
Case Else
' 未知文件格式,退出。
Exit Sub
End Select

If sType = "AviVideo" And hWnd > 0 Then
nReturn = mciSendString("open " & sTheFile & " ALIAS " & sAlias _
& " TYPE AVIVideo parent " & hWnd & " style " & LTrim$(Str$(WS_CHILD)), 0&, 0, 0)
Else
nReturn = mciSendString("Open " & sTheFile & " ALIAS " & sAlias _
& " TYPE " & sType, "", 0, 0)
End If

End Sub
'关闭当前打开的多媒体文件
Public Sub mmClose()
Dim nReturn As Long

'如果没有文件打开,则退出
If sAlias = "" Then Exit Sub

本新闻共3页,当前在第1页  1  2  3  

 
上一篇:VB2005中开发新一代控制台应用程序
下一篇:VB程序中用ADO对象动态创建数据库和表
打印】【关闭
  相关文章:
·VB2005中开发新一代控制台应用程序·VB程序中用ADO对象动态创建数据库
·VB十七种可用一行代码完成的技巧·VB问题集锦及编程技巧
·VB实现远程共享显示及声音·VB制作半透明窗体
·VB取得屏幕解析度·VB禁止使用Alt+F4关闭窗口
·VB中阴影字体的实现 ·利用VB6.0开发基于IIS的应用程序
·在VB中使用DOS命令·用VB实现窗口图标最小化到通知栏
·掌握VB中的ADO数据对象编程·巧用Visual Basic的Timer控件
·利用VB设计聊天室·用VB编写“红绿灯”程序
☆联姻学院☆

保养电脑的26个窍门
文件夹删除不掉怎么办?
教你如何用手工迅速剿灭QQ广告
“熊猫烧香”病毒的病毒描述和
在Excel中只打印图表以外区域
Excel中只选中包含文本的单元
Windows XP操作系统的几个实用
用XP系统自带网络诊断程序解决
风雨雷电→自然现象动画实战技
Flash遮罩特效之百叶窗效果
十二个Dreamweaver鲜为人知的
如何用 Dreamweaver 批量做we
JavaScript的系统函数学习
Java之父:关于Java我也有遗憾
排除网上邻居使用4大常见麻烦
解除上网限制IP和MAC捆绑的破