Listbox media player

ced55957 Messages postés 108 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 19 juin 2012 - 14 févr. 2006 à 00:58
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 16 févr. 2006 à 04:36
bonsoir les developpeur!!!!

Voila j'ai un petit souci!!!! j'ai créer un code qui importe mes musiques dans un listbox, je clique sur lecture la musique tourne des la musique finis ça passe a l'autre et je voudrais rajouter une fonction quand je clique sur un bouton la musioque d'aperes passe

merci d'avance

10 réponses

Utilisateur anonyme
14 févr. 2006 à 05:14
Salut,

tu dois faire une boucle avec for et les items de ta listbox.

A+
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
14 févr. 2006 à 06:53
exemple :

procedure NextTrack;
var index := integer;
begin
index := listbox1.itemindex + 1;
if index = listbox1.count then listbox1.itemindex := 0
else

listbox1.itemindex := index
PlayTrack;
end;

procedure PrecTrack;
var index := integer;
begin
index := listbox1.itemindex - 1;
if index < 0 then listbox1.itemindex := listbox1.count - 1
else
listbox1.itemindex := index;
PlayTrack;
end;

procedure PlayTrack;
var track : string;
begin
track := listbox1.items[listbox1.itemindex];
if (FileExists(track)) and (track <> player.file) then begin
player.file := track;
player.load;
player.play;
end;
end;




<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
guigui265 Messages postés 113 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 16 avril 2006
14 févr. 2006 à 09:07
lorsque je tape la procedure playtrack, pourquoi est ce que on m'affiche "impossible d'invoquer l'achèvement de code, du fait d'erreurs dans le code source"
guillaume
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
14 févr. 2006 à 10:46
Salut,
@ Guillaume, c'est parce que tu as des erreurs dans le code qui se trouve avant. Si c'est egalement les procedures de f0xi il te faut soit déclarer la procedure PlayTrack avant PrecTrack et NextTrack soit les référencer dans la section Interface de ton unité.
Car les procedures PrecTrack et NextTrack font appel à PlayTrack qui n'est pas encore déclarer.

Les procedures de f0xi ne sont qu'un exemple elles sont sorties de leurs contexte
Donc pour pouvoir les utiliser plainement il faut faire :

type
TForm1 = class (TForm)
ListBox1 : TListBox;
procedure NextTrack;
procedure PrecTrack;
procedure PlayTrack;
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

Implementation

procedure TForm1.NextTrack;
var index : = integer;
begin
index := listbox1.itemindex + 1;
if index = listbox1.count then listbox1.itemindex := 0
else
listbox1.itemindex : = index
PlayTrack;
end;

procedure TForm1.PrecTrack;
var index := integer;
begin
index : = listbox1.itemindex - 1;
if index < 0 then listbox1.itemindex := listbox1.count - 1
else
listbox1.itemindex : = index;
PlayTrack;
end;

procedure TForm1.PlayTrack;
var track : string;
begin
track := listbox1.items[listbox1.itemindex];
if (FileExists(track)) and (track <> player.file) then begin
player.file : = track;
player.load;
player.play;
end;
end;

@+
Cirec
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guigui265 Messages postés 113 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 16 avril 2006
15 févr. 2006 à 08:54
Salut cirec, lorsque,dans la procedure playtrack, je met mediaplayer. il ne trouve pas file et load. et donc, ca ne marche pas, il les prend pour un identificateur non déclaré
@++
guillaume
0
guigui265 Messages postés 113 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 16 avril 2006
15 févr. 2006 à 08:57
En fait, la selection dans la liste box change, mais pas la lecture, il ne change pas la piste de lecture
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
15 févr. 2006 à 11:45
Salut Guillaume,
Il y a effectivement un petit soucis.
F0xi s'est trompé et moi j'ai bêtement recopier ses fautes

Donc voici un bout de code qui fonctionne (j'ai testé)

En bleu les ajouts
En rouge les corrections

var
frm_Player: Tfrm_Player;
FilePath : String; // dans cette variable tu mets le chemin des MP3 Ex: 'C:\Ma Musique\' ceci uniquement si le répertoire
courant ne correspond pas avec celui des MP3

procedure Tfrm_Player.NextTrack;
var index : integer;
begin
index := listbox1.itemindex + 1;
if index = listbox1.count then listbox1.itemindex := 0
else
listbox1.itemindex : = index;
PlayTrack;
end;


procedure Tfrm_Player.PlayTrack;
var track : string;
begin
track := listbox1.items[listbox1.itemindex];
Track := FilePath + Track ; //ceci uniquement si le répertoire courant ne correspond pas avec celui des MP3
if (FileExists(track)) and (track <> player.fileName) then begin
player.fileName : = track;
Player.Open;
player.play;
end;
end;


procedure Tfrm_Player.PrecTrack;
var index : integer;
begin
index := listbox1.itemindex - 1;
If index < 0 then listbox1.itemindex : = listbox1.count - 1
else
listbox1.itemindex := index;
PlayTrack;
end;


@+
Cirec
0
guigui265 Messages postés 113 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 16 avril 2006
15 févr. 2006 à 11:58
ok,ca me parait mieux, mais j'avais corrigé, au lieu de playtrack,j'ai repri ma procédure de lecture que j'utilise sur le bt_play!
@+
guillaume
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 févr. 2006 à 04:33
oui attention un, dans mon exemple plus haut j'ai bien marquer "EXEMPLE", un exemple qui fonctionne pour ListBox mais pas pour MediaPlayer ou pour tout autre API SON.

la procedure PlayTrack est donc a modifier en consequence selon si on utilise MP ou Bass ou FMod .

<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 févr. 2006 à 04:36
ah et aussi, je ne me suis pas tromper, je penser surtout que de logique vous auriez vus qu'il fallait remplacer le code

player.file := track;
player.load;
player.play;

par ce qu'il fallait. ^^

vus que j'utilise FMod ou Bass mais pas MediaPlayer ... je ne connais pas trop ce dernier, donc le code "erroné" est fait exprés pour montrer ce que doit contenir (a peu prés) la proc PlayTrack.

<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
Rejoignez-nous