VB利用API进行媒体播放

来源:互联网 发布:安卓看片软件哪个好 编辑:程序博客网 时间:2024/06/10 11:22
 
  1. '
  2. '媒体播放(SmMedia)
  3. '
  4. Option Explicit
  5. Dim s As String, ShortPathName As String
  6. Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As StringByVal lpszShortPath As StringByVal cchBuffer As LongAs Long
  7. Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
  8.             (ByVal lpstrCommand As StringByVal lpstrReturnString As String, _
  9.              ByVal uReturnLength As LongByVal hwndCallback As LongAs Long
  10. '
  11. '播放媒体
  12. '函数:PlayMCI
  13. '参数:SoundName 声音文件名,MCIName MCI名称.
  14. '返回值:TRUE 成功播放,FALSE 不成功.
  15. '例子:
  16. Public Function PlayMCI(SoundName As StringOptional MCIName As String = "MYWAV"As Boolean
  17.     s = String(LenB(SoundName), Chr$(0))
  18.     GetShortPathName SoundName, s, Len(s)
  19.     ShortPathName = Left$(s, InStr(s, Chr$(0)) - 1)
  20.     
  21.     mciSendString "close " & MCIName, vbNullString, 0, 0
  22.     mciSendString "open " & ShortPathName & " alias " & MCIName, vbNullString, 0, 0
  23.     mciSendString "play " & MCIName, vbNullString, 0, 0
  24. End Function
  25. '
  26. '循环播放指定的MCI
  27. '函数:LoopPlayMci
  28. '参数:MCIName MCI名称.
  29. '返回值:
  30. '例子:
  31. Public Function LoopPlayMci(Optional MCIName As String = "MYWAV")
  32.     Dim s As String
  33.     
  34.     s = String$(255, Chr$(0))
  35.     mciSendString "status " & MCIName & " mode", s, Len(s), 0
  36.     If Left$(s, 7) = "stopped" Or Left$(s, 2) = "停止" Then
  37.         mciSendString "seek " & MCIName & " to start", vbNullString, 0, 0
  38.         mciSendString "play " & MCIName, vbNullString, 0, 0
  39.     End If
  40. End Function
  41. '
  42. '关闭媒体
  43. '函数:ColseMedia
  44. '参数:MCIName MCI名称.
  45. '返回值:
  46. '例子:
  47. Public Sub ColseMedia(Optional MCIName As String = "MYWAV")
  48.         mciSendString "close " & MCIName, vbNullString, 0, 0
  49. End Sub