Esta es una libreria donde pongo funciones de MCI para poder manejar según los codec's instalados en la pc:
Música
Imagenes
Videos
Dichos codigos no son la gran cosa ya que cualquiera los podria crear con solo leer la MSDN, solo son funciones que sustituyen a dichos comandos MCI (abajo muestro unos 3er post secuencial.)
Usa la Api mciSendString y mciGetErrorString
Funciones que incluye la DLL:
hay funciones que piden
:::WindowsStyle::: lo tipos son:
popup
child
(creo que hay otro mmm igual pueden buscar mas info sobre MCI y asi encuentran el otro xP)
AbrirComoVentana
AbrirMedia
AcercaDe
Audio_Derecho_OFF
Audio_Derecho_ON
Audio_EstableceLeftVolume
Audio_EstableceRightVolume
Audio_EstableceVolumenGeneral
Audio_EstadoDelAudio
Audio_Izquierdo_OFF
Audio_Izquierdo_ON
Audio_ObtenerLeftVolume
Audio_ObtenerRightVolume
Audio_ObtenerVolumenGeneral
Audio_OFF
Audio_ON
CerrarMedios
ChecarError
Device_Listo
Device_Nombre
Device_Version
Disquera_Abrir
Disquera_Cerrar
Establece_PocicionEn
Establece_TamanoLocal
Establece_Velocidad
Estraer_TamanoPred
MedioX_AdelantarCuadros
MedioX_AdelantarMilisegundos
MedioX_AdelantarSegundos
MedioX_AtrasarCuadros
MedioX_CerrarMedia
MedioX_DetenerMedio
MedioX_FormatoTiempo
MedioX_FormatoTiempoFaltante
MedioX_FormatoTiempoPosicion
MedioX_MinimizarMedio
MedioX_MostrarMedio
MedioX_Obtener_CuadrosPorSegundo
MedioX_Obtener_TamanoActual
MedioX_Obtener_TamanoOriginal
MedioX_Obtener_Velocidad
MedioX_Obtener_VelocidadNominalEnCuadros
MedioX_OcultarMedio
MedioX_PausarMedio
MedioX_PosicionEnMilisegundos
MedioX_ReiniciarMedio
MedioX_ReproduceFullScreen
MedioX_Reproduciendo
MedioX_ReproducirMedia
MedioX_RestaurarMedio
MedioX_ResumirMedio
MedioX_TiempoFaltanteEnCuadros
MedioX_TiempoFaltanteEnMilisegundos
MedioX_TiempoFaltanteEnSegundos
MedioX_Video_Estado
MedioX_VideoOff
MedioX_VideoOff_ALL
MedioX_VideoOn
MedioX_VideoOn_ALL
Obtener_BitsPorPicel
Obtener_EntradaDelMedio
Obtener_EstadoDelMedio
Obtener_PosicionEnCuadros
Obtener_PosicionEnSegundos
Obtener_SalidaDelMedio
Restaurar_TamanoOriginal
stepCuadros
UrlMedia_Establece
Como ven esta muy completa esta libreria pero aun me faltan opciones a como yo lo veo.
Descargar En RAR (http://musanto.webcindario.com/InfrAngeluX/InfraMediaPlayer/InfraMedia.rar)
Descargar En Zip (http://musanto.webcindario.com/InfrAngeluX/InfraMediaPlayer/InfraMedia.zip)
Comentarios? gracias
Saludos
ejemplos sencillos:
se nesesita solo un timer y en un formulario:
Reproduce un Medio infinitamente (gracias a que el timer verifica si se esta reproduciendo o NO xP)
Dim pr As New InfraMediaByOAMA
private sub form_load()
With PR
'.cerrarmedios 'Cierra TODOS los medios que se abrieron con anterioridad
.UrlMedia_Establece "ruta del archivo no importa si es musica, imagen o video"
.abrirmedia
.mediox_reproducirmedia
AutoRedraw = True
Print .mediox_posicionenmilisegundos(0)
MsgBox .AcercaDe
End With
end sub
Private Sub Form_Terminate(): PR.cerrarmedios: End Sub
Private Sub Timer1_Timer()
If Not PR.mediox_reproduciendo Then
PR.mediox_reiniciarmedio
End If
info
End Sub
Sub info()
Cls
With PR
Print "----------------------------------------------"
Print "Tiempo del Medio: " & vbTab & vbTab & vbTab & .MedioX_FormatoTiempoPosicion & " " & .mediox_FormatoTiempofaltante
Print "----------------------------------------------"
Print "Velocidad Actual de Medio: " & vbTab & vbTab & .MedioX_Obtener_Velocidad
Print "----------------------------------------------"
Print "Version del Componente MCI: " & vbTab & vbTab & .device_version
Print "----------------------------------------------"
Print "estado de Componente MCI: " & vbTab & vbTab & .device_listo
Print "----------------------------------------------"
End With
End Sub
el codigo anterior si se le pone la ruta de una imagen o video este saldrá de una ventana emergente ("PopUp")
si se desea mostrar un video o imagen en un lugar especifico usar el siguiente codigo:
Dim pr As New InfraMediaByOAMA
Private Sub form_load()
With pr
'.cerrarmedios 'Cierra TODOS los medios que se abrieron con anterioridad
.UrlMedia_Establece "ruta de la imagen o video"
.AbrirComoVentana Picture1.hWnd, "child" '.AbrirMedia
.MedioX_ReproducirMedia
AutoRedraw = True
Print .MedioX_PosicionEnMilisegundos(0)
MsgBox .AcercaDe
End With
End Sub
Private Sub Form_Terminate(): pr.CerrarMedios: End Sub
Private Sub Timer1_Timer()
If Not pr.MedioX_Reproduciendo Then
pr.MedioX_ReiniciarMedio
End If
info
End Sub
Sub info()
Cls
With pr
Print "----------------------------------------------"
Print "Tiempo del Medio: " & vbTab & vbTab & vbTab & .MedioX_FormatoTiempoPosicion & " " & .MedioX_FormatoTiempoFaltante
Print "----------------------------------------------"
Print "Velocidad Actual de Medio: " & vbTab & vbTab & .MedioX_Obtener_Velocidad
Print "----------------------------------------------"
Print "Version del Componente MCI: " & vbTab & vbTab & .Device_Version
Print "----------------------------------------------"
Print "estado de Componente MCI: " & vbTab & vbTab & .Device_Listo
Print "----------------------------------------------"
End With
End Sub
Podre aquí un poco de MCI Command String
use open para identificarlo posteriormente al medio actual y poder realizar los demas Comdos posteriormente por medio del identificador, Play + ruta del archivo solo reproduce pero no realiza cambios posterioes almenos que se le ponga un alias.
archivo="Ruta del archivo"
tipo="mpeg" ' puede ser otro tipo este lo cambian según los codecs
identificador="un nombre o numero" 'servira para hacerse una modificación al medio abierto posteriormente xP
"open " & chr(32) & Archivo & chr(32) & " type " & Tipo & " alias " & Identificador & " "
"play " & indetificador & " "
o
"play " & chr(32 & rutadelarchivo & chr(32) & " "
"play " & identificador & " fullscreen"
"setaudio " & identificador & " volume to " & Valor
"setaudio " & identificador & " left volume to " & Valor
"setaudio " & identificador & " Right volume to " & Valor
para obtener vvolumen posicion y demas usese status
"status " & identificador & " volume"
"status " & identificador & " left volume"
"status " & identificador & " Right volume"
"set " & identificador & " video off"
"set " & identificador & " video on"
"set " & identificador & " volume off"
"set " & identificador & " audio all off"
"set " & identificador & " audio all on"
si quieren callar solo un lado seai zquierdo o derecho usese Left o Right según se dee
Si deseean mas informacion sobre los MCI Command String esta el MSDN Click para acceder (http://msdn.microsoft.com/en-us/library/ms710815(VS.85).aspx) o google (http://www.google.com.mx/)
Esta es una libreria donde pongo funciones de MCI para poder manejar según los codec's instalados en la pc:
:o :o :o :o :o :o :o :o
Dim pr As New InfraMediaByOAMA
:o :o :o :o :o :o :o :o
InfraMediaByOAMA
:¬¬ :¬¬ :o :o :o :o :o :o
Ademas de como resalta byway que el autor de la libreria no esta claro quien es....
los links no funcionan
Saludos :rolleyes:
no es serio esto, ¿¿al final quien es el autor?? :xD, esta linea de codigo me dejo mudo:
Private Sub Form_Terminate(): PR.cerrarmedios: End Sub
:-\ :-\
Antes que nada Links Arreglados.
>|------------------------>
Dim pr As New InfraMediaByOAMA
InfraMediaByOAMA
OAMA
Ortega Avila Miguel Angel = OAMA
Siempre me a sonado a Iraqi pero bueno es mi diminutivo pero igual.¡!
Cita de: seba123neo en 27 Diciembre 2008, 01:16 AM
no es serio esto, ¿¿al final quien es el autor?? :xD, esta linea de codigo me dejo mudo:
Private Sub Form_Terminate(): PR.cerrarmedios: End Sub
:-\ :-\
mmm cual es la diferencia de Terminate y Unload?, mmm (cuando termina y cuando se descarga, cual es la diferencia mmm) :-\ :-\
De igual forma pudo hacer sido:
pr.MedioX_cerramedio [indentificar] ' si no se pone identificador se tomara 0 por default
pr.MedioX_cerramedio ' mci close id
' Pero como cierro el APP y no deseo seguir oyendo nada mejor uso (solo solo en el VB)
pr.Cerrarmedios ' mci => close all
Algo mas ¬¬! :rolleyes:
P.D.: El identificaador llega hasta 100 elementos (0-99), lo realice asi para evitarme la pena de crear mas de 1 vez la dll y posibleemente hacer degradados intercalados de música (exagere con los 100 elementos lo se ¬¬).
Lamento haber dudado ;)
Buen proyecto ;D ;)
Cita de: Karcrack en 27 Diciembre 2008, 12:21 PM
Lamento haber dudado ;)
Buen proyecto ;D ;)
Cita de: Albert Einstein
Todos somos ignorantes;lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein
No hay cuidado