Bonjour,
J'utilise une boucle for pour jouer en boucle un son.
Le son est joué s'il y a appui sur le bouton play ou si j'appelle la procedure dans une autre section du code.
Je veux en fait récupérer par un Edit (Edit1) le nombre de fois que l'utilisateur désire écouter le son.
Mon code est le suivant :
J'ai essayé le programme en placant la boucle à plusieurs endroits mais cela ne marche pas, le son n'est joué qu'une seule fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 procedure TForm1.btJouerClick(Sender: TObject); var B : integer; begin //for B:= StrToInt(Edit1.Text) downto 0 do Lecteur; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if (Key <> chr(8)) and ((Key < '0') or (Key > '9')) then begin Key := chr(0); // Permet d'annuler la frappe de la touche end; end; procedure TForm1.Lecteur; var B : integer; begin //for B:= StrToInt(Edit1.Text) downto 0 do if RadioBtmont4s.Checked then //for B:= StrToInt(Edit1.Text) downto 0 do begin MediaPlayer1.FileName := 'C:\Sons\MONTE.WAV'; MediaPlayer1.Open; MediaPlayer1.StartPos:=0; // Joue 4s du morceau WAV MediaPlayer1.EndPos:=4000; MediaPlayer1.Play; Arretautorise := true; // evite un bug si nous appuyons sur arreter // alors q'aucun son WAV n'a été lancé end; if RadioBtmont8s.Checked then //for B:= StrToInt(Edit1.Text) downto 0 do begin MediaPlayer1.FileName := 'C:\Sons\MONTE.WAV'; MediaPlayer1.Open; MediaPlayer1.StartPos:=0; // Joue 8s du morceau WAV MediaPlayer1.EndPos:=8000; MediaPlayer1.Play; Arretautorise := true; end; procedure TForm1.btArreterClick(Sender: TObject); begin if Arretautorise then begin MediaPlayer1.Stop; end; end;
Merci d'avance pour vos remarques.
Partager