请问不用控件如何开始、停止播放某个MP3和Mid文件?

kmzs 2003-10-14 06:21:13
请问用API如何开始、停止播放某个MP3和Mid文件?
...全文
56 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
海牛 2003-11-16
  • 打赏
  • 举报
回复
那就是用Active Movie Contril Type Library
kmzs 2003-11-16
  • 打赏
  • 举报
回复
真的好用吗?大家试试看。
3661512 2003-10-14
  • 打赏
  • 举报
回复
补充一句,把以下放在窗体申明部分
Dim ShortPathName As String * 255
3661512 2003-10-14
  • 打赏
  • 举报
回复
以下代码放入标准模块
Public 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

Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
例如播放一个MP3文件
Dim RefShortName As String
Dim plays As Long
GetShortPathName App.Path & "\OnTime.Mp3", ShortPathName, 255
RefShortName = Left(ShortPathName, InStr(1, ShortPathName, Chr(0)) - 1)
plays = mciSendString("play " & RefShortName, vbNull, 0, 0) '播放
plays = mciSendString("close " & RefShortName, vbNull, 0, 0) '停止播放
Mid文件类似
rainstormmaster 2003-10-14
  • 打赏
  • 举报
回复
关于设备名称可以查看win.ini文件,下面是我机器上的有关设备的信息,等号前为文件扩展名,等号后为设备名

[mci extensions]
mid=Sequencer
rmi=Sequencer
wav=waveaudio
avi=AVIVideo
cda=CDAudio
aif=MPEGVideo
aifc=MPEGVideo
aiff=MPEGVideo
au=MPEGVideo
m1v=MPEGVideo
m3u=MPEGVideo
midi=Sequencer
mov=MPEGVideo
mp2=MPEGVideo
mp3=MPEGVideo
mpa=MPEGVideo
mpe=MPEGVideo
mpeg=MPEGVideo
mpg=MPEGVideo
mpv2=MPEGVideo
qt=MPEGVideo
snd=MPEGVideo
asf=MPEGVideo2
asx=MPEGVideo2
ivf=MPEGVideo2
mp2v=MPEGVideo
wax=MPEGVideo2
wvx=MPEGVideo2
wm=MPEGVideo2
wmx=MPEGVideo2
wma=MPEGVideo2
wmp=MPEGVideo2
wmv=MPEGVideo2
rainstormmaster 2003-10-14
  • 打赏
  • 举报
回复
和播放wav文件没什么本质的区别,只是设备名称不同而已,下面是一个播放mid文件的例子

怎样使用API播放MIDI音乐?
本例将演示如何使用mciSendString播放MIDI文件,如果你有专业版或企业版的VB环境,可以直接使用MCI控件播放MIDI,而无需使用API。
请按照以下步骤进行:
首先建立一个新的项目文件,添加一个命令按钮,并向按钮添加以下代码:
Private Sub Command1_Click()
Dim ret As Integer
' 下面的代码将打开C:\WIN31\CANYON.MID的音序器
ret = mciSendString("open c:\windows\CANYON.MID _

type sequencer alias canyon", 0&, 0, 0)

 

'直到MCI命令返回到程序

 

ret = mciSendString("play canyon wait", 0&, 0, 0) ' 关闭Canyon

ret = mciSendString("close canyon", 0&, 0, 0)

 

End Sub

 

在Form1的general declarations中加入以下代码:

#If Win32 Then

Private Declare Function mciSendString Lib "winmm.dll" Alias _

"mciSendStringA" (ByVal lpstrCommand As String, ByVal _

lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal _

hwndCallback As Long) As Long

 

#ElseIf Win16 Then

 

Private Declare Function mciSendString Lib "mmsystem" (ByVal _

lpstrCommand As String, ByVal lpstrReturnStr As Any, ByVal _

wReturnLen As Integer, ByVal hCallBack As Integer) As Long

 

#End If

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧