Lecture de 2 fichiers audio synchronisés avec VLC

bonjour a tous,

J'essais de lire simultanément 2 fichiers mais je ne sais pas s'il y a une syntaxe pour ca. Pour le moment je dois lancer 2 fenetre VLC et je dois faire "play" pour chacun d'eux, donc un gros délais entre les 2 exécutions. J'ai ajouté les arguments "no playlist-autostart" sans résultat. J'ai vu ce code quelque part mais ca ne semble pas aller dans le VBA: vlc :start-time=10 :stop-time=30 DP8(1)_1.wav :start-time=11 :stop-time=39 DP8(2)_1.wav:start-time=20 :stop-time=90 DP8(2)_1.wav

Dim vlcPath As String
Dim audioFilePath1 As String
Dim audioFilePath2 As String
Dim startTime1 As Long
Dim startTime2 As Long
Dim vlcArgs As String

vlcPath = "C:\Program Files\VideoLAN\VLC\vlc.exe" ' Chemin d'accès à l'application VLC
audioFilePath1 = "C:\Users\michel\piano\fichier1.wav"  ' Chemin d'accès aux fichiers audio
audioFilePath2 = "C:\Users\michel\piano\fichier2.wav"

startTime1 = 5 ' Temps de début pour chaque fichier (en secondes)
startTime2 = 5

vlcArgs = audioFilePath1 & " --start-time=" & startTime1 & " --no-playlist-autostart"
Shell vlcPath & " " & vlcArgs, vbNormalFocus

vlcArgs = audioFilePath2 & " --start-time=" & startTime2 & " --no-playlist-autostart"
Shell vlcPath & " " & vlcArgs, vbNormalFocus

Apres beaucoup de tentatives j'en suis arrivé a un compromis acceptable. J'ouvre plusieurs occurences de VLC une a la suite de l'autre avec leur fichier associé, mais en mettant sur pause tres rapidement chacun d'eux avant de lancer le prochain (a cause du délais nécessaire pour l'ouverture de chacun qui pourrait s'accumuler jusqu'au dernier lancement. Dans un 2ieme temps, j'enleve la pause tour a tour de chacun d'eux (ici le délais entre chaque occurence n'a pas besoin d'etre grand pour que l'exécution se fasse, simplement un petit délais ajouter de quelques millisecondes entre chaque.

Cette approche me permet de lire jusqu'a 8 pistes audio sans délais important entre la 1 ere et la derniere. Mon utilisation est pour un lecture multipiste apres enregistrement de tout les instruments.

Voici un apercu de mon code, notez que totalSeconds et temps écoulé peuvent etre égale a 0 pour des enregistrements de fichier a partir du temps 0sec.

Sub Play_VLC() 'ouvre toutes les pistes visées
StopTimer = False
vlcArgs1 = "C:\Users\michel\piano\" & nt1 & ".wav" & " --start-time=" & totalSeconds + Temps_écoulé '& " --no-playlist-autostart"   ' l'argument no playlist-autostart mettra en pause a l'ouverture Noter qu'il faut mettre le parametre "lancer automatiquement" dans liste de lecture
vlcArgs2 = "C:\Users\michel\piano\" & nt2 & ".wav" & " --start-time=" & totalSeconds + Temps_écoulé '& " --no-playlist-autostart"                                 'Temps_écoulé sert a repartir apres avoir fait "pause" (arret)
vlcArgs3 = "C:\Users\michel\piano\" & nt3 & ".wav" & " --start-time=" & totalSeconds + Temps_écoulé '& " --no-playlist-autostart"
vlcArgs4 = "C:\Users\michel\piano\" & nt4 & ".wav" & " --start-time=" & totalSeconds + Temps_écoulé '& " --no-playlist-autostart"
vlcArgs5 = "C:\Users\michel\piano\" & nt5 & ".wav" & " --start-time=" & totalSeconds + Temps_écoulé '& " --no-playlist-autostart"
vlcArgs6 = "C:\Users\michel\piano\" & nt6 & ".wav" & " --start-time=" & totalSeconds + Temps_écoulé '& " --no-playlist-autostart"
vlcArgs7 = "C:\Users\michel\piano\" & nt7 & ".wav" & " --start-time=" & totalSeconds + Temps_écoulé '& " --no-playlist-autostart"
vlcArgs8 = "C:\Users\michel\piano\" & nt8 & ".wav" & " --start-time=" & totalSeconds + Temps_écoulé '& " --no-playlist-autostart"
PauseExécution 200
If aa <> "" Then 's'il y a quelque chose sur la piste 1
   Shell vlcPath & " " & vlcArgs1, vbNormalFocus  ' Lance la première instruction VLC
   PauseExécution 100 'délais 100 msec
   SendKeys "1"  'on retourne "Pause" a VLC
End If

If bb <> "" Then 's'il y a quelque chose sur la piste 2
   Shell vlcPath & " " & vlcArgs2, vbNormalFocus
   PauseExécution 100
   SendKeys "1"
End If
If cc <> "" Then
   Shell vlcPath & " " & vlcArgs3, vbNormalFocus
   PauseExécution 100
   SendKeys "1"
End If
If dd <> "" Then
   Shell vlcPath & " " & vlcArgs4, vbNormalFocus
   PauseExécution 100
   SendKeys "1"
End If
If ee <> "" Then
   Shell vlcPath & " " & vlcArgs5, vbNormalFocus
   PauseExécution 100
   SendKeys "1"
End If
If ff <> "" Then
   Shell vlcPath & " " & vlcArgs6, vbNormalFocus
   PauseExécution 100
   SendKeys "1"
End If
If gg <> "" Then
   Shell vlcPath & " " & vlcArgs7, vbNormalFocus
   PauseExécution 100
   SendKeys "1"
End If
If hh <> "" Then
   Shell vlcPath & " " & vlcArgs8, vbNormalFocus
   PauseExécution 100
   SendKeys "1"
End If

PlayVLC = True
PauseExécution 20  'important sinon lorsqu'il y a 1 seul élément VLC, la commande play de cet élément ne se fera pas

'on démarre chaque élement mais le plus regrouper possible pour éviter des délais
Send "2", 10   'ma fonction. on fait "play" pour toute les occurences de VLC ouvertes
Rechercher des sujets similaires à "lecture fichiers audio synchronises vlc"