Hola invitado         31 Jul, 2010 - 07:35
Menú principal
 
Ads
 
Patrocinadores
 
Anuncios
 
© 2009 PortalFox
Obtener Informacion de un video AVI lecturas 5605
 Enviado por Jorge_Mota en Jueves, 23 Septiembre, 2004
API Por medio de la APIi podemos saber las dimensiones de un archivo AVI, como ancho y Alto, y otra informacion.
A continuacion el codigo:
#DEFINE OF_SHARE_DENY_WRITE  0x20
DECLARE LONG AVIFileOpen IN "avifil32" LONG @ppfile, STRING szFile, LONG mode, LONG pclsidHandler
DECLARE LONG AVIFileRelease IN "avifil32" LONG pfile
DECLARE LONG AVIFileInfo IN "avifil32"  LONG NFichero, STRING @FDatos, LONG FTamano
DECLARE AVIFileInit IN "avifil32"
DECLARE AVIFileExit IN "avifil32"
LOCAL hFile AS LONG, AviInfo AS STRING
hFile = 10
AviInfo = REPLICATE(CHR(0),11*4) &&11 los elementos que tiene *4pos. que ocupa cada uno
AviInfo = AviInfo + SPACE(64) &&area para el string que devuelve
AVIFileInit()
cCad = "c:\smstit\ANIMATE\a180.avi"
IF AVIFileOpen(@hFile, cCad,OF_SHARE_DENY_WRITE, 0) = 0
  IF AVIFILEINFO(hFile, @AviInfo, LEN(AviInfo)) = 0 Then
    MESSAGEBOX("Tamaño: " + TRANSFORM(nRepStruct(AviInfo,6)) + "x" + TRANSFORM(nRepStruct(AviInfo,7)))
    MESSAGEBOX(TRANSFORM(nRepStruct(AviInfo,1))+CHR(13)+; &&dwMaxBytesPerSec
    TRANSFORM(nRepStruct(AviInfo,2))+CHR(13)+ ; &&dwFlags
    TRANSFORM(nRepStruct(AviInfo,3))+CHR(13)+ ; &&dwCaps
    TRANSFORM(nRepStruct(AviInfo,4))+CHR(13)+ ; &&dwStreams
    TRANSFORM(nRepStruct(AviInfo,5))+CHR(13)+ ; &&dwSuggestedBufferSize
    TRANSFORM(nRepStruct(AviInfo,6))+CHR(13)+ ; &&dwWidth
    TRANSFORM(nRepStruct(AviInfo,7))+CHR(13)+ ; &&dwHeight
    TRANSFORM(nRepStruct(AviInfo,8))+CHR(13)+ ; &&dwScale
    TRANSFORM(nRepStruct(AviInfo,9))+CHR(13)+ ; &&dwRate
    TRANSFORM(nRepStruct(AviInfo,10))+CHR(13)+ ; &&dwLength
    TRANSFORM(nRepStruct(AviInfo,11))+CHR(13)+ ; &&dwEditCount
    SUBSTR(AviInfo,11*4+1,64)) &&szFileType
  ELSE
    MESSAGEBOX("No Se pudo obtener las propiedades del archivo")
  ENDIF
  AVIFileRelease(hFile)
ELSE
  MESSAGEBOX("Error al abrir el video")
ENDIF
AVIFileExit()

FUNCTION nRepStruct
  LPARAMETERS cEstructura, nValor
  LOCAL cCadena, nEmp
  nEmp=((nValor-1)*4)+1
  cCadena = SUBSTR(cEstructura,nEmp,4)
  RETURN  (ASC(SUBSTR(cCadena, 1,1))+ ;
    BITLSHIFT(ASC(SUBSTR(cCadena, 2,1)),  8)+ ;
    BITLSHIFT(ASC(SUBSTR(cCadena, 3,1)), 16)+ ;
    BITLSHIFT(ASC(SUBSTR(cCadena, 4,1)), 24))
ENDFUNC
La informacion retornada viene dada por una estructura asi:
*Struct 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
*EndStruct
Saludos Jorge Mota Microsoft Visual FoxPro MVP Guatemala
 Versión imprimible  
Obtener Informacion de un video AVI | Entrar/Crear una cuenta | 2 Comentarios
Los comentarios son propiedad de sus respectivos autores.
No somos responsables de su contenido.

Re: Obtener Informacion de un video AVI


por amby en 23 Sep, 2004 - 05:25
(Información del usuario  | Enviar un mensaje http://www.amby.net)
Bienvenido Jorge !!!!!

Que bueno saber que estás de regreso. Aportando más sobre API.

Muchas gracias, te extrañamos mucho.

Saludos,

Ana




Todas las marcas y los logos utilizados en este sitio son propiedad de sus respectivos dueños.
Los artículos, noticias y comentarios son propiedad y responsabilidad de sus respectivos autores.
Copyright © 2000-2010 PortalFox. Todos los derechos reservados.