Rubrik: Multimedia & Sound · Video | VB-Versionen: VB4, VB5, VB6 | 14.10.02 |
AVI-Video per API in PictureBox abspielen Dieses Beispiel zeigt, wie sich ein AVI-File ohne zusätzliches Player-Control in einer PictureBox abspielen lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 40.529 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Das nachfolgende Beispiel zeigt, wie sich ein AVI-File ohne zusätzliches Player-Control in einer PictureBox abspielen lässt.
Alles was man dazu braucht, ist die universelle SendMCIString API-Funktion!
Erstellen Sie ein neues Projekt und platzieren Sie eine PictureBox auf die Form. Weiterhin werden noch zwei CommandButtons benötigt (cmdPlay und cmdStop).
Und hier der Code:
Option Explicit ' benötigte API-Deklarationen 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 Declare Function GetShortPathName Lib "kernel32" _ Alias "GetShortPathNameA" ( _ ByVal lpszLongPath As String, _ ByVal lpszShortPath As String, _ ByVal cchBuffer As Long) As Long
' AVI-File öffnen Private Sub AVI_Open(ByVal sFile As String) Dim sBuffer As String * 256 Dim nResult As Long ' DOS-Namen ermitteln (8.3-Format) nResult = GetShortPathName(sFile, sBuffer, Len(sBuffer)) sFile = Left$(sBuffer, nResult) ' AVI öffnen ' öffnet ein Gerät und eine Multimedia-Datei mciSendString "open " & sFile & " type avivideo" & _ " alias myAVI", 0, 0, 0 ' Anzeige in der PictureBox mciSendString "window myAVI handle " & _ CStr(Picture1.hWnd), 0, 0, 0 End Sub ' AVI in PictureBox abspielen Private Sub AVI_Play() mciSendString "play myAVI from 0", 0, 0, 0 End Sub ' Abspielvorgang stoppen Private Sub AVI_Stop() mciSendString "close myAVI", 0, 0, 0 End Sub ' MCI Schließen Private Function AVI_Close() mciSendString "close myAVI", 0, 0, 0 End Function
' AVI öffnen und abspielen Private Sub cmdPlay_Click() Dim sFile As String ' Dateiname sFile = "c:\winnt\clock.avi" ' MCI öffnen AVI_Open sFile ' Abspielvorgang starten AVI_Play End Sub
' Abspielvorgang beenden und MCI schließen Private Sub cmdStop_Click() AVI_Stop AVI_Close End Sub