DirectShow. El ejemplo de la página está en Visual Basic 6. Es importante mencionar que la funcionalidad se encuentra desde directX8 en adelante.
Ejemplo Direct Show, Visual Basic .Net 2005:
Lo primero es hacer referencia al proyecto a "QUARTZ.DLL", puedes buscarlo y traspasarlo a tu carpeta de proyecto si deseas.
Elementos del formulario:
1.- Un Opendialog=>opd
2.- Tres Button's=>abrir, play, stop
3.- Un Textbox,Nombre del Archivo abierto=>text1
Código PHP:
Imports QuartzTypeLib
Public Class MyForm
Private auba As IBasicAudio //Audio Básico
Private vidba As IBasicVideo //Video Básico, no ocupado
Private evmu As IMediaEvent //Evento multimedia, este aún no le he probado como funciona.
Private winvi As IVideoWindow //Video de windows, no lo ocupare en el ejemplo
Private mulco As IMediaControl //Control multimedia, este es el importante
Private posmu As IMediaPosition //Posición multimedia
Private InPlay as Boolean = False//Controlamos si está en reproducción actualmente.
//Ocupamos esta función para cargar nuestro archivo a los elementos
//Es importante siempre colocar todo en Try para evitar caidas en la carga
Protected Sub Load_File(FileName as string)
Try
mulco = New FilgraphManager//Inicializa el elemento
mulco.RenderFile(FileName)//Cargar Archivo
auba = mulco
auba.balance=0//Corresponde al valor medio. Valor Máximo 10.000, valor mínimo -10.000
auba.Volume=0//Valor máximo del volumen, el valor mínimo es -10.000
evmu = mulco
posmu = mulco
posmu.Rate = 1//Reproducción hacia adelante en forma normal, no he visto otros valores
posmu.CurrentPosition=0//Posición en que se encuantra la reproducción
Catch ex As Exception
Colocar cualquier sentencia que controle el error.
End Try
End Sub
Private Sub Clear_Object()
Try
//En caso de que este en ejecución este Control
If Not mulco Is Nothing Then
mulco.Stop()
End If
//Dejo esta sentencia para que no se olviden de cerrarlo cuando van a querer cargar un video
If Not winvi Is Nothing Then
winvi.Owner = 0
End Id
auba = Nothing
vidba = Nothing
evmu = Nothing
winvi = Nothing
mulco = Nothing
posmu = Nothing
InPlay = False
Catch ex As Exeception
//Sentencia de Error
End Try
End Sub
Private Sub abrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles abrir.Click
If opd.ShowDialog = Windows.Forms.DialogResult.OK Then
Clear_Object()//Limpiamos
text1.Text = opd.FileName//Guardamos el Nombre
Load_File(text1.Text)//Cargamos información
End If
End Sub
//Ponemos en marcha la reproducción
Private Sub play_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles play.Click
If text1.text = "" or mc Is Nothing Then//Control para que no tengamos error al no tener archivo cargado
MsgBox ("No hay archivo Cargado")
End If
If InPlay Then
posmu.CurrentPosition = 0
End If
mulco.Run()
InPlay = True
End Sub
//Detenemos la Reproducción
Private Sub stop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles stop.Click
mulco.Stop()
posmu.CurrentPosition=0
InPlay = False
End Sub
End Class
Esperando que a alguien le sea de utilidad muchas gracias.
