il sistema + sicuro e funzionale è usare le Microsoft directX la versione 8 in questo caso (visto che usi VB6)
codice:
'crea un modulo con questo codice....
Attribute VB_Name = "dShow"
Global DSAudio As IBasicAudio
Global DSVideo As IBasicVideo
Global DSWindow As IVideoWindow
Global DSControl As IMediaControl
Global DSPos As IMediaPosition
Global Const WS_VISIBLE = &H10000000
Sub DS_OpenFile(Filename As String, _
rectTop As Integer, _
rectLeft As Integer, _
rectWidth As Integer, _
rectHeight As Integer, _
FhWnd As Long, Optional fullScreen As Boolean = False)
On Error Resume Next
'Puliamo prima di caricare un nuovo file
Call DS_termina
Set DSControl = New FilgraphManager 'crea il controllo
Call DSControl.RenderFile(Filename) 'carica il file
'crea il controllo del volume
Set DSAudio = DSControl
DSAudio.Volume = 0 'regola il volume come normale
DSAudio.Balance = 0 'centra l'audio
Set DSWindow = DSControl 'crea l'oggetto che contiene il video(se presente
DSWindow.WindowStyle = &H10000000 'finestra visibile
DSWindow.Top = rectTop 'dimensioni del controllo
DSWindow.Left = rectLeft
DSWindow.Width = rectWidth
DSWindow.Height = rectHeight
DSWindow.Owner = FhWnd
DSWindow.FullScreenMode = fullScreen
Set DSPos = DSControl 'crea il controllo della posizione
DSPos.Rate = 1
End Sub
Public Sub DS_Play()
'Esegui il play
DSPos.CurrentPosition = 0
Call DSControl.Run
'
End Sub
Public Sub DS_Pause()
'pausa
Call DSControl.Pause
End Sub
Public Sub DS_Riprendi()
'riprendi da una pausa
DSControl.Run
End Sub
Public Sub DS_Stop()
'Stop
Call DSControl.Stop
DSPos.CurrentPosition = 0
End Sub
Public Sub DS_SetRate(velocità As Double)
If velocità <= 0 Then velocità = 0.1
'regola la velocità
DSPos.Rate = velocità
End Sub
Public Function DS_GetLen() As Double
'ricevi la durata del file
DS_GetLen = DSPos.Duration
End Function
Public Function DS_GetPosition() As Double
'ricevi la posizione
DS_GetPosition = DSPos.CurrentPosition
End Function
Public Sub DS_SetPosition(posizione As Double)
'modifica la posizione del filmato
If posizione > DSPos.Duration Then posizione = DSPos.Duration
DSPos.CurrentPosition = posizione
End Sub
Public Function DS_GetVolume() As Long
'ricevi il volume
DS_GetVolume = DSAudio.Volume
End Function
Public Sub DS_SetVolume(Volume As Long)
'il volume va da 0 a -10000
If Volume > 0 Then Volume = 0
If Volume < -10000 Then Volume = -10000
DSAudio.Volume = Volume
End Sub
Public Function DS_GetBalance() As Long
'ricevi il balance
DS_GetBalance = DSAudio.Balance
End Function
Public Sub DS_SetBalance(Balance As Long)
'va da -10000 a +10000
If Balance < -10000 Then Balance = -10000
If nBalance > 10000 Then Balance = 10000
DSAudio.Balance = newBalance
End Sub
Public Sub DS_termina()
On Error Resume Next
'fermiamo il file se sta già in esecuzione
DSControl.Stop
DSWindow.Owner = 0
'distruggi tutto
Set DSAudio = Nothing
Set DSVideo = Nothing
Set DSControl = Nothing
Set DSWindow = Nothing
Set DSPos = Nothing
End Sub
inh pratica basta che il PC abbia installate le DirectX (ogni videogiocatore le ha) e poi dove vuoi eseguire il video,
chiami la funzione DS_openfile e ci passi il nome del file , le dimensioni in cui vuoi che il video sia eseguito, e lHandle della finestra in cui eseguirlo,
gli altri sub sono intuitivi
+ facile di così.....