j'espère que ceci va éclairer, mais l'appli fait d'autres choses, difficile de mettre tout le code
L'utilisateur choisit une db et la vidéo correspondante est lancée
pas WMPlayer
conFor_Connect
rsEnt.Open "SELECT * FROM Entretien ;", cnxFor, adOpenDynamic, adLockOptimistic
rsEnt.MoveFirst
V I D E O
La vidéo corrrespondante de le db est ouverte, la première ligne de la db est lue, elle contient l'endroit du réel début du film
WindowsMediaPlayer1.settings.autoStart = False
WindowsMediaPlayer1.URL = Left(nameEnt, Len(nameEnt) - 7) & "VID.avi"
WindowsMediaPlayer1.Controls.play
debutFilm = rsEnt.Fields("soustitre")
WindowsMediaPlayer1.Controls.currentPosition = debutFilm
MsgBox WindowsMediaPlayer1.status
rsEnt.MoveNext
cette requete résume les sous-titres et différents paramètres
reqStatCatGen = "TRANSFORM Count(Entretien.Texte) AS CompteDeTexte"
reqStatCatGen = reqStatCatGen & " SELECT Entretien.Enonce, Entretien.numEnonce, Entretien.loc"
reqStatCatGen = reqStatCatGen & " FROM Entretien"
reqStatCatGen = reqStatCatGen & " GROUP BY Entretien.Enonce, Entretien.numEnonce, Entretien.loc ORDER BY Entretien.numEnonce"
reqStatCatGen = reqStatCatGen & " PIVOT Entretien.CatGen;"
rsStatEnt.Open reqStatCatGen, cnxFor, adOpenKeyset, adLockPessimistic
rsStatEnt.MoveNext
totSynchro = 44
'on balaie la DB de synthèse où une ligne = un énoncé
Do While Not (rsStatEnt.EOF)
numEnonce = numEnonce + 1
toute une série de calcul/graphique sur rsStatEnt
'la synchro: le sous titre est affiché pendant le temps qui est dans rs.Fields("soustitre")
For iSynchro = 1 To totSynchro
Sleep (iSynchro * rsEnonce.Fields("soustitre"))
DoEvents
Next iSynchro
Les sous-titres déjà passés sont affichés dans un textbox
For iii = 1 To (numEnonce - 1)
sEnonce = Replace(rsStatEnt.Fields("Enonce"), "£s", "Soignant: "): sEnonce = Replace(sEnonce, "£p", "Patient: ")
sEnonce = Replace(sEnonce, "_" & Chr(12), " ?"): sEnonce = Replace(sEnonce, Chr(12), "")
txtOld = txtOld & vbCrLf & sEnonce: txtOld.SelStart = Len(txtOld.Text)
rsStatEnt.MoveNext
Next iii
Loop
'la pause est un bouton de commande
Private Sub cmdPause_Click()
Dim posPause As Integer
WindowsMediaPlayer1.Controls.pause
blPause = True: cmdPause.Visible = False: cmdGo.Visible = True
End Sub
25 sept. 2014 à 14:04
Private Declare Function GetTickCount Lib "kernel32" () As Long
debut = GetTickCount()
While GetTickCount() - debut <= 1000 * rs.Fields("soustitre")
Sleep (1)
DoEvents
Wend