Vor kurzem haben wir Ihnen gezeigt, wie sich ein AVI-Video per API abspielen lässt: Heute möchten wir Ihnen zeigen, wie sich die Größe des Videos ermitteln lässt, so dass Sie die PictureBox zum Abspielen des Videos auch entsprechend groß anzeigen können. Außerdem zeigt unser Tipp noch, wie sich die Gesamt-Spielzeit des Files auslesen lässt. ' zunächst die benötigten API-Deklarationen Private Declare Function AVIFileOpen Lib "avifil32" _ Alias "AVIFileOpenA" ( _ ppfile As Long, _ ByVal szFile As String, _ ByVal mode As Long, _ pclsidHandler As Any) As Long Private Declare Function AVIFileRelease Lib "avifil32" ( _ ByVal pfile As Long) As Long Private Declare Function AVIFileInfo Lib "avifil32" _ Alias "AVIFileInfoA" ( _ ByVal pfile As Long, _ pfi As AVIFileInfo, _ ByVal lSize As Long) As Long Private Declare Sub AVIFileInit Lib "avifil32" () Private Declare Sub AVIFileExit Lib "avifil32" () ' AVI Info-Struktur Private Type AVIFileInfo dwMaxBytesPerSec As Long dwFlags As Long dwCaps As Long dwStreams As Long dwSuggestedBufferSize As Long dwWidth As Long dwHeight As Long dwScale As Long dwRate As Long dwLength As Long dwEditCount As Long szFileType As String * 64 End Type ' Breite und Höhe der animierten Bildsequenz ermitteln ' (Rückgabewert erfolgt in Pixel!!!) Public Sub AVI_GetSize(ByVal sFile As String, _ nWidth As Long, nHeight As Long) Dim hFile As Long Dim AviInfo As AVIFileInfo ' Fehlerbehandlung aktivieren On Error Resume Next ' Initialisieren AVIFileInit ' AVI öffnen (Handle erstellen) If AVIFileOpen(hFile, sFile, &H20, ByVal 0&) = 0 Then ' Infos lesen If AVIFileInfo(hFile, AviInfo, Len(AviInfo)) = 0 Then nWidth = AviInfo.dwWidth nHeight = AviInfo.dwHeight End If AVIFileRelease hFile End If ' Beenden AVIFileExit On Error Goto 0 End Sub ' Länge (Spieldauer) ermitteln ' (Rückgabewert erfolgt in Sekunden) Public Function AVI_GetLength(ByVal sFile As String) As Long Dim hFile As Long Dim AviInfo As AVIFileInfo Dim nLength As Long ' Fehlerbehandlung aktivieren On Error Resume Next ' Initialisieren AVIFileInit ' AVI öffnen (Handle erstellen) If AVIFileOpen(hFile, sFile, &H20, ByVal 0&) = 0 Then ' Infos lesen If AVIFileInfo(hFile, AviInfo, Len(AviInfo)) = 0 Then nLength = AviInfo.dwLength / AviInfo.dwRate * AviInfo.dwScale End If AVIFileRelease hFile End If ' Beenden AVIFileExit On Error Goto 0 ' Rückgabewert AVI_GetLength = nLength End Function Beispiel: ' AVI-Infos ermitteln Dim sFile As String Dim nWidth As Long Dim nHeight As Long Dim nLength As Long ' AVI-Datei sFile = "c:\winnt\clock.avi" ' Bildgröße AVI_GetSize sFile, nWidth, nHeight ' Spielzeit in Sek. nLength = AVI_GetLength(sFile) Bei längeren AVI-Videos ist es sinnvoll die ermittelte Spielzeit nicht in Sekunden, sondern in Minuten und Sekunden anzugeben. Hierfür können Sie nachfolgende "Hilfsfunktion" verwenden, die Sekunden in das Format mm:ss umwandel. ' Sekunden nach mm:ss umrechnen Private Function AVI_FormatTime( _ ByVal iSec As Long) As String Dim iMin As Long iMin = Int(iSec / 60) iSec = iSec - (iMin * 60) AVI_FormatTime = Format$(iMin, "00") & ":" & _ Format$(iSec, "00") End Function Dieser Tipp wurde bereits 21.446 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats ![]() Zardoz Bild in Image-Control mit gerundeten Ecken anzeigen Der Code zeigt ein Bild, dass in ein Image-Control geladen wurde, mit gerundeten Ecken an. Optional kann noch der Radius der Ecken übergeben werden. sevZIP40 Pro DLL ![]() Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |