volume control

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Serim
Üye
Mesajlar: 194
Kayıt: 08 Ara 2004 03:32
Konum: Konya

volume control

Mesaj gönderen Serim »

s.a. arkadaşlar,
ben programımda arka fonda müzik çaldırıyorum. (playsound ile) forma bir tane trackbar koyup onchange olayına göre müziğin sesini ayarlamak istiyorum.Bu konuyla ilgili bir kod buldum fakat olmadı.Kodlar aşağıda:

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  MyWaveOutCaps: TWaveOutCaps;
  Volume: Integer;
begin
  Volume:=Scrollbar1.Position;
  if WaveOutGetDevCaps(
    WAVE_MAPPER, 
    @MyWaveOutCaps, 
    sizeof(MyWaveOutCaps))=MMSYSERR_NOERROR then
      WaveOutSetVolume(WAVE_MAPPER, MakeLong(Volume, Volume));
end;
Herkese iyi çalışmalar...
Bilginin temelini sağlam at depremde zarar görmesin
secret_boy
Üye
Mesajlar: 151
Kayıt: 17 Kas 2005 04:46

Mesaj gönderen secret_boy »

merhaba
ilk olarak:
siz demişsiniz ki trackbar koyup ayarlama istiyorum ama kodunuzda scrollbar var bunu trackbar olarak degiştirip deneyin
ikincisi trackbar!ın position degerlerini negatif ve pozitif olarak degiştirin yani ikitane buton atın forma ve birisine su kodu

Kod: Tümünü seç

trackbar1.position:=trackbar1.position-1;
ikincisinede su kodu yazarak deneyin

Kod: Tümünü seç

trackbar1.position:=trackbar1.position+1;
insallah olur kolay gelsin
secret_boy
Üye
Mesajlar: 151
Kayıt: 17 Kas 2005 04:46

Mesaj gönderen secret_boy »

Tekrar merhaba size netten buldugum bir kodu vereyim denedim calısıyor
dediginiz gibi trackbar ile ses kontrolu yapabiliyorsunuz
yalnız kodu yazmadan once delphide uses kısmına MMsystem i eklemeyi unutmayın
takıldıgınız bir yer olursa gene bu alana sorabilirsiniz.

Kod: Tümünü seç

function GetWaveVolume(var LVol: DWORD; var RVol: DWORD): Boolean;
var
 WaveOutCaps: TWAVEOUTCAPS;
 Volume: DWORD;
begin
 Result := False;
 if WaveOutGetDevCaps(WAVE_MAPPER,@WaveOutCaps,SizeOf(WaveOutCaps))=MMSYSERR_NOERROR then
  if WaveOutCaps.dwSupport and WAVECAPS_VOLUME=WAVECAPS_VOLUME then
   begin
    Result:=WaveOutGetVolume(WAVE_MAPPER, @Volume)=MMSYSERR_NOERROR;
    LVol:=LoWord(Volume);
    RVol:=HiWord(Volume);
   end;
end;

function SetWaveVolume(const AVolume: DWORD): Boolean;
var
 WaveOutCaps: TWAVEOUTCAPS;
begin
 Result:=False;
  if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then
   if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
    Result:=WaveOutSetVolume(WAVE_MAPPER, AVolume)=MMSYSERR_NOERROR;
end;

procedure TForm1.GlasnostChange(Sender: TObject);
var
 Volume: Word;
begin
 Volume:=Glasnost.Position*6535;
 SetWaveVolume(MakeLong(Volume,Volume))
end;
Kullanıcı avatarı
Serim
Üye
Mesajlar: 194
Kayıt: 08 Ara 2004 03:32
Konum: Konya

Mesaj gönderen Serim »

Çok tşk ederim 2.mesajınızdaki kodlar işimi gördü.tam istediğim gibi oldu süper ya :lol:
İyi çalışmalar....
Bilginin temelini sağlam at depremde zarar görmesin
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Re: volume control

Mesaj gönderen Amuzende »

Bu kod ile Wave değerini değiştiriyoruz. Peki ana ses ayarını (master) nasıl değiştiriyoruz??
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Re: volume control

Mesaj gönderen Amuzende »

:?: :?: :?: :?:
Cevapla