Re: Fichier Video

Posté par R&B le 16/6/2003 15:53:01
Rien dans les sites du Ring ou chez nos partenaires ?
Bizarre!
La LST41 contient un exemple sur les potentiomètres multicurseurs... pour jouer un fichier AVI.
...l'utilisation d'un potentiomètre multicurseur permet de redéfinir les bornes utilisée pour jouer une AVI...


Peut être qu'en analysant ce code, les API sortiront...
ou du moins des API liées.

STOP : AVIFileInfo de avifil32.dll


AVIFILEINFO est une structure
dwMaxBytesPerSec est un entier [[wd55 : long]]
dwFlags est un entier
dwCaps est un entier
dwStreams est un entier
dwSuggestedBufferSize est un entier
dwWidth est un entier
dwHeight est un entier
dwScale est un entier
dwRate est un entier
dwLength est un entier
dwEditCount est un entier
szFileType As String * 64
szFileType est une chaine asciiZ sur 64 // ????
fin
pfi est un AVIFILEINFO
appeldll32("avifil32","AVIFileInfo",pfile,&pfi,dimension(pfi))

voir le contenu de pfi

NB : code obtenur par tentative de traduction de VB
pardon pour les erreurs éventuelles.
Evidement cette API est à utiliser avec ses soeurs...

code VB initial

Private Const OF_SHARE_DENY_WRITE As Long = &H20
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
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" ()
Private Sub Form_Load()
    Dim hFile As Long, AviInfo As AVIFILEINFO
    'initialize the AVIFile library
    AVIFileInit
    'create a handle to the AVI file
    If AVIFileOpen(hFile, "C:\SIERRA\Half-Life\valve\media\sierra.avi", OF_SHARE_DENY_WRITE, ByVal 0&) = 0 Then
        'retrieve the AVI information
        If AVIFileInfo(hFile, AviInfo, Len(AviInfo)) = 0 Then
            MsgBox "AVI dimensions: " + CStr(AviInfo.dwWidth) + "x" + CStr(AviInfo.dwHeight)
        Else
            MsgBox "Error while retrieving AVI information... :("
        End If
        'release the file handle
        AVIFileRelease hFile
    Else
        MsgBox "Error while opening the AVI file... :("
    End If
    'exit the AVIFile library and decrement the reference count for the library
    AVIFileExit
End Sub


Merci de nous poster votre code...

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=5&topic_id=123&post_id=388