• 如何在Picture上播放AVI

說明

    透過MCI指令,我們可以很輕易的播放AVI檔,但是我們該如何控制他的位置呢
    步驟如下

    1. "open FileName type AVIVideo alias mAVI parent hwnd style WS_CHILD" '開啟媒體檔
          FileName是要開啟的檔名
          mAVI是自訂的媒體名稱
          hwnd是播放位置的hwnd
          WS_CHILD是常數
    2. "put mAVI window at lx ly lw lh" '設定視窗位置
          lx是要播放的x座標
          ly是y座標
          lw是寬度
          lh是高度
    3. "play mAVI" '播放
    4. "close mAVI" '最記的關閉

程式

    Option Explicit
    Private Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
    Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

    Private Const WS_CHILD = &H40000000

    Public Sub PlayAviFileAt(ByVal sFileName As String, lhWnd As Long, lx As Long, ly As Long, lw As Long, lh As Long)
    Dim FileName As String, ret As Long
    ret = GetShortPathName(sFileName, 0, 0)
    FileName = String(ret - 1, Chr(0))
    ret = GetShortPathName(sFileName, FileName, ret)

    mciSendString "open " & FileName & " type AVIVideo alias mAVI parent " & CStr(hwnd) & " style " & CStr(WS_CHILD), vbNullString, 0, 0
    mciSendString "put mAVI window at " & CStr(lx) & " " & CStr(ly) & " " & CStr(lw) & " " & CStr(lh), vbNullString, 0, 0
    mciSendString "play mAVI wait", vbNullString, 0, 0
    mciSendString "close mAVI", vbNullString, 0, 0
    End Sub


    如果要再Form1上播放C:\aa.avi只要呼叫
        PlayAviFileAt App.Path & "\FILECOPY.AVI", Form1.hwnd, 0, 0, Form1.ScaleWidth \ Screen.TwipsPerPixelX, Form1.ScaleHeight \ Screen.TwipsPerPixelY

文件出處

    Honey

整理時間

    2003'5,16.

VB心得筆記歡迎各位的指教,如果您有任何文章或資料願意提供給我們的,請來信到VBNote

如果對本站有任何建議,歡迎來信給Honey,我們會盡快給您答覆