VB利用API进行媒体播放
来源:互联网 发布:安卓看片软件哪个好 编辑:程序博客网 时间:2024/06/10 11:22
- Option Explicit
- Dim s As String, ShortPathName As String
- Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
- 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
- Public Function PlayMCI(SoundName As String, Optional MCIName As String = "MYWAV") As Boolean
- s = String(LenB(SoundName), Chr$(0))
- GetShortPathName SoundName, s, Len(s)
- ShortPathName = Left$(s, InStr(s, Chr$(0)) - 1)
-
- mciSendString "close " & MCIName, vbNullString, 0, 0
- mciSendString "open " & ShortPathName & " alias " & MCIName, vbNullString, 0, 0
- mciSendString "play " & MCIName, vbNullString, 0, 0
- End Function
- Public Function LoopPlayMci(Optional MCIName As String = "MYWAV")
- Dim s As String
-
- s = String$(255, Chr$(0))
- mciSendString "status " & MCIName & " mode", s, Len(s), 0
- If Left$(s, 7) = "stopped" Or Left$(s, 2) = "停止" Then
- mciSendString "seek " & MCIName & " to start", vbNullString, 0, 0
- mciSendString "play " & MCIName, vbNullString, 0, 0
- End If
- End Function
- Public Sub ColseMedia(Optional MCIName As String = "MYWAV")
- mciSendString "close " & MCIName, vbNullString, 0, 0
- End Sub