- 帖子
- 116
- 主題
- 41
- 精華
- 0
- 積分
- 162
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- Taiwan
- 註冊時間
- 2010-7-22
- 最後登錄
- 2024-2-9
|
25#
發表於 2012-12-26 07:38
| 只看該作者
回復 24# GBKEE
http://hi.baidu.com/_pt98/item/a65477da91588e36e1f46f17
找到這些想辦法要使用它
使用wav檔,檔案太大了。同樣的聲音mp3只要0.1就夠了
API播放WAV,AVI,MP3,MID(來自網絡)
1.avi
' In standard module:
Public Play As Boolean
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 Returnstring As String
Sub AVI_Play()
Const FileName As String = "c:\mybestfile.avi"
If Dir(FileName) = "" Then Exit Sub
If Play Then AVI_Stop
Returnstring = Space(127)
mciSendString "open " & Chr(34) & FileName & Chr(34) _
& " type avivideo alias video", Returnstring, 127, 0
mciSendString "set video time format ms", Returnstring, 127, 0
mciSendString "play video from 0", Returnstring, 127, 0
Play = True
End Sub
Sub AVI_Stop()
mciSendString "close video", Returnstring, 127, 0
Play = False
End Sub
'In ThisWorkbook module:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Play Then AVI_Stop
End Sub
2.mp3
Option Explicit
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
Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Private Function ConvShortFilename(ByVal strLongPath$) As String
Dim strShortPath$
If InStr(1, strLongPath, " ") Then
strShortPath = String(LenB(strLongPath), Chr(0))
GetShortPathName strLongPath, strShortPath, Len(strShortPath)
ConvShortFilename = Left(strShortPath, InStr(1, strShortPath, Chr(0)) - 1)
Else
ConvShortFilename = strLongPath
End If
End Function
Public Sub MMPlay(ByRef FileName As String) '
FileName = ConvShortFilename(FileName) '
mciSendString "close " & FileName, vbNullString, 0, 0
mciSendString "open " & FileName, vbNullString, 0, 0
mciSendString "play " & FileName, vbNullString, 0, 0
End Sub
Public Sub MMStop(ByRef FileName As String)
FileName = ConvShortFilename(FileName) '
mciSendString "stop " & FileName, vbNullString, 0, 0
mciSendString "close " & FileName, vbNullString, 0, 0
End Sub
3.wav
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwflags As Long) As Long
Sub Warning()
PlaySound ThisWorkbook.Path + "\Warning.wav", 0&, &H1
End Sub
4.mid
Public Declare Function mciExecute Lib "winmm.dll" Alias " mciExecute" (ByVal lpstrCommand As String) As Long
Private Sub play()
Dim ReturnValue As Long
ReturnSoundValue = mciExecute("play C:\WIN95\MEDIA\CANYON.MID")
End Sub |
|