Volume sur un seul son

Résolu
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 - 8 août 2005 à 13:45
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 - 23 août 2005 à 23:29
Bonjour,
Voila je m explique:

J aimerais reduire le volume d'un son et pas le son en general donc ceci n est pas ce que j attends:

var
LVolume, RVolume, Volume: DWord;
begin
RVolume:=TrackBar1.Position;
LVolume:=TrackBar1.Position;
Volume:=(DWord(RVolume) Shl 16) Or LVolume;
WaveOutSetVolume(0,Volume);
midiOutSetVolume(0,volume);
label5.Caption:='Volume '; ----> placé ac un trackbar....

Mais qqch du genre pour un seul son?
Au fait je joue plusieurs sons en simultanes et j aimerais reduire le volume de quelques uns pour seulement les entendre moins haut que les autres! Bon je me repete mais c est pr etre sur d etre compris!!!!!

Est ce possible ac les composant Standard???
Est ce que j ai ete assez explicite?

Et une autre question pas en relation ac ceci mais ac le site:

Est ce normal que je dois galerer facilement 5 min pr ouvrir le site et facile 5 min de + pour parcourir le site

En tout cas longue vie a CS

Slt
Nico
@+
A voir également:

6 réponses

DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
9 août 2005 à 18:43
J'ai oublié de te dire... mais tu l'auras deviné:

rajoutes "mmsystem" dans uses (en plus de"MPlayer" qui doit déjà être en place si tu à mis 1 ou plusieurs mediaplayers).

tu pourras utiliser un code style :


<HR>
procedure TForm1.Button1Click(Sender: TObject);
begin
SetMPVolume(MediaPlayer1,500);// tu choisis un vomume entre 0 et 1000
end;
<HR>

DrJerome
3
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
9 août 2005 à 21:48
Nikel vraiment Nikel DrJerome

c est vraiment ce qu il me fallait. Commencais a desesperer... Mais heureusement tu es la!!!!

Tu n aurais pas une fonction par hasard pr Augmenter/diminuer le tempo?
Ca serait vraiment la classe

Mais c est deja tres tres bien ainsi

Merci (Re, de tt maniere c est gratuit alors autant en profiter!)

Slt
Nico
@+
0
DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
10 août 2005 à 09:38
1/ merci (pour le volume)
2/ désolé (pour le tempo)

j'ai essayé MCI_SEQ_SET_PARMS...pas concluant

j'ai essayé sur la même base de code en donnant des valeurs à dwTempo (ça plante)...et ce n'est que pour les fichiers MIDI

(regardes dans l'aide MMSYSTEM.HLP de Delphi...tu le recherches sur le cd directememnt)

bon courage...j'espère que quelqu'un te trouveras la soluce

ça doit être faisable...

DrJerome
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
11 août 2005 à 12:41
J ai vu le Fichier MM.hlp sur le cd, Dommage que ce soit en anglais,mais enfin tjs moyen de s en sortir.

En tout cas c est vraiment sympa de ta part d avoir consacré du tps a mon petit probleme.

Re RE Merci

Ciao

Nico
0

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

Posez votre question
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
23 août 2005 à 23:29
Yep, je suis tombé sur ce bout de code au hasard, et pil poil il
correspondait à un besoin latent. Cool. Merci M'sieur. Précision
SetMPVolume il faut le faire apres Mediaplayer.Open.



Tiens question, ca compliquerait beaucoup un réglage de balance, du genre
SetMPVolume(MediaPlayer1
, 0 < volume < 1000 , -100< balance <100 ) où zéro serait
la balance=0 <=> au centre ?
0
DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
9 août 2005 à 18:40
Pour baisser le volume d'un TMediaplayer (en admettant que tu en aies plusieurs qui tournent en même temps) :

<HR>

procedure SetMPVolume(MP : TMediaPlayer; Volume : Integer);
const
MCI_SETAUDIO = $0873;
MCI_DGV_SETAUDIO_VOLUME = $4002;
MCI_DGV_SETAUDIO_ITEM = $00800000;
MCI_DGV_SETAUDIO_VALUE = $01000000;

Type
MCI_DGV_SETAUDIO_PARMS = record
dwCallback : DWORD;
dwItem : DWORd;
dwValue : DWORD;
dwOver : DWORD;
lpstrAlgorithm : PChar;
lpstrQuality : PChar;
end;

var
p : MCI_DGV_SETAUDIO_PARMS;

begin
{ Volume: 0 - 1000 }
p.dwCallback := 0;
p.dwItem := MCI_DGV_SETAUDIO_VOLUME;
p.dwValue := Volume;
p.dwOver := 0;
p.lpstrAlgorithm := nil;
p.lpstrQuality := nil;
mciSendCommand(MP.DeviceID, MCI_SETAUDIO,
MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p));

end;


<HR>

Voilà...c'est tout ce que j'ai à t'offrir, au delà ça risque d'être plus technique...ça dépasse mes connaissances


N'oubliez pas de cliquer sur Réponse acceptée si c'est OK

DrJerome
-2
Rejoignez-nous