2 mediaplayer

Résolu
Signaler
Messages postés
108
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
19 juin 2012
-
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
-
bonjours

voila mon souci!!! j'ai créer un lecteur mp3 avec 2 mediaplayer (en faite 2 lecteurs mp3 dans 1) j'ai ajouter deux trackbar (1 pour le lecteur 1 et 1 pour le lecteur 2) il y en a un qui est toujours sur position max l'autre sur position min. et je voudrais que quand je diminue l'un l'autre augmente . le trackbar1 controle le volume du mediaplayer1 le trackbar2 le volume du mediaplayer2, en faite créer une table de mixage??? pouver vous m'aider

je vous remercie d'avance

16 réponses

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Quels sont les termes que tu ne comprends pas ?

@+
Nico { http://www.ni69.new.fr/ }

<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
salut,

il suffit que tu lies les 2 trackbars par les évènements onchange:



procedure TForm1.TrackBar2Change(Sender: TObject);

begin

trackbar1.Position:= trackbar2.Max-trackbar2.Position;

end ;



procedure TForm1.TrackBar1Change(Sender: TObject);

begin

trackbar2.Position: =trackbar1.Max-trackbar1.Position;

end;





@+

jlen

Salut,


Je vais me permettre juste d'expliquer l'idée (très bonne) de Jlen. Le principe est simple : le volume sonore doit etre constant quelque soit le controle de trackbar que tu fais : On a donc volume1+volume2=volume max=constante soit trackbar
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
il n'y aqu'une petite restriction: il faut que :

trackbar1.Max = trackbar2.Max

@+

jlen
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Mais à mon avis, comme il s'agit de la gestion du volume dans chacun des deux cas, la valeur Max des trackbars sera la même

@+
Nico { http://www.ni69.new.fr/ }

<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
Au lieu d'utiliser 2 trackbars ,
n'utilise qu'une trackbar qui qd elle est en position du milleu correspond a la valeur par defaut des 2 lecteurs , et qd elle est au min/max correspond au min/max d'un des 2 lecteurs ce qui facilite un peu les choses si tu veux faire du mix

Ciao
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Une gestion de balance en quelque sorte... L'idée est bonne Nicolas___ !
Par contre, si jamais il y a plus de 2 MediaPlayers, ça ne marchera plus...

@+
Nico { http://www.ni69.new.fr/ }

<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
a chaque outils sont utilisation. MediaPlayer n'est pas prevus pour cela, vas plutot faire un tours du coté de Bass et FMod qui sont deux api son complete et qui permette de gerer le multipiste.

<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>
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Très juste fOxi

@+
Nico { http://www.ni69.new.fr/ }

<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Messages postés
108
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
19 juin 2012

merci bien pour toute les donnée que vous m'avez fournit mais je suis trés debutant dans la matiere lol!!!!comment doije faire pour diminuer le son d'un mediaplayer et pas du son general????
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Tourne-toi plutôt vers ce que fOxi t'a conseillé : utilise les API :)

@+
Nico
Messages postés
108
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
19 juin 2012

oui pour moi aussi l'idée de foxi est tres bonne mais comment doije faire pour faire ce systeme de balance avec les 2 médiaplayer????

cordialement
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
alors, sur un systeme windows et avec 2 mediaplayer tu vas avoir 4 control de volume :

Master Volume : le volume general de la carte son
Wave Volume : le volume general des sources "wave" (mp3, ogg, video, cd audio ect...)
MP1 Volume : le volume general du mediaplayer 1
MP2 Volume : le volume general du mediaplayer 2

voici le shema de liaison :

[MP1 vol]_____
[MP2 vol]____ \
\ \
[Wave vol]----->[master vol]

Dans ce systeme, il faudrat toucher au son de MP1 et MP2 pour obtenir un effet "cross-over" ce qui ne serat pas trés pratique d'ailleur. un peu comme si on devais utiliser deux chaine hifi et bouger le volume des deux en meme temps.

Maintenant comment un systeme de mix double/multi pistes fonctionne :
piste 1 volume
piste 2 volume
piste 1/2 crossover
master mix volume

voici le shema de liaison :

[P1 vol]______ _
[P2 vol]_____ \ |

[Pn vol]____ \ \ _|-->[track selector]-->[head phone out]

\ \ \
[cross-over]----->[master out]--//-->[sound system]

Ici, le cross-over permet de garder le volume des pistes a leur position actuelle et de passer doucement ou rapidement d'une piste a l'autre sur la sortie son.
Le cross-over est egalement trés utiliser pour le "scratching" sur disque vynil.
Dans le cas d'une table 4 pistes ou plus, on peu avoir plusieurs Cross-over ou encore un selecteur de piste sur lequelles on vas travailler.

dans bass ou fmod , on possede en effet de deux reglage possible pour le volume :

le volume principal du canal audio et le volume de la source audio.

ensuite le tout et de travailler sur le pourcentage.
un crossover vas envoyer x% de piste 1 (quelque soit le volume) et y% de piste 2 (quelque soit le volume) sur la sortie son.
une trackbar servant de crossover serat donc quotée de -100 a 100, en calculant le ratio par rapport au volume courrant de la piste on obtiendras un chiffre nous permettant d'incrementer ou decrementer la valeur du volume de cette piste.

par exemple :

volume piste 1 = 255
volume piste 2 = 128
ratio p1 = 2.55
ratio p2 = 1.28
cross-over = 2.55 : 1.28

direction du cross-over :
[--------<-------] P1+2.55 [0..100], P2-1.28 [0..-100]

[-------->-------] P1-2.55 [0..100], P2+1.28 [0..-100]

valeur des volume par rapport au cross-over :100%L : P1 255, P2 0

100%R : P1 0, P2 1280%LR : P1 255, P2 12850%L : P1 255, P2 6450%R : P1 128, P2 128

<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>
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
voici un exemple de fonctionnement des trackbars :

{
trackbar1 min/max : -100..100
trackbar2 min/max : 0..255
trackbar3 min/max : 0..255

}

var v1,v2 : integer;
p1,p2 : single;

// piste 1 volume
procedure TForm1.TrackBar2Change(Sender: TObject);
begin
// -255 car en position vertical la trackbar est inversée

v1 := 255-TrackBar2.Position;
// affichage du volume de piste 1

label1.Caption := format('%.3d',[v1]);
end;

// piste 2 volume
procedure TForm1.TrackBar3Change(Sender: TObject);
begin
// -255 car en position vertical la trackbar est inversée

v2 := 255-TrackBar3.Position;
// affichage du volume de piste 2

label2.Caption := format('%.3d',[v2]);
end;

// cross-over
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if trackbar1.Position < 0 then begin
p2 := 100.0;
// < 0 on calcul le pourcentage de piste 1

p1 := 100 - abs(trackbar1.Position);
end;
if trackbar1.Position > 0 then begin
p1 := 100.0;
// > 0 on calcul le pourcentage de piste 2

p2 := 100 - abs(trackbar1.Position);
end;
if trackbar1.Position = 0 then begin
// a 0, piste 1 et piste 2 sont a 100%

p1 := 100.0;
p2 := 100.0;
end;
// affichage du pourcentage de piste 1

label3.Caption := format('%.0f%%',[p1]);

// affichage du pourcentage de piste 2

label4.Caption := format('%.0f%%',[p2]);
// affichage du nouveau volume de piste 1

label6.Caption := format('%.0f',[(v1/100)*p1]);

// affichage du nouveau volume de piste 2

label7.Caption := format('%.0f',[(v2/100)*p2]);
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>
Messages postés
108
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
19 juin 2012

j'ai entrée le code ça ne fonctionne pas!!!!!
Messages postés
108
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
19 juin 2012

ffffffffffffffffffffffffffffffff!!!!lol je ne comprend rien!!!!!merci pour vos explication mais je suis vraiment debutant je ne comprend rien au terme!!!!!