Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

Регулировака громкости   Найти похожие ветки 

 
MSSS   (2006-07-31 08:17) [0]

Здраствуйте, Товарищи!
Допустим,  есть TrackBar (max 100), нужно с его помощью регулировать громкость Windows. Объясните, плиз, как такое сделать? Может кто примерчиком кинется?
СпасибО!


 
Phoroon~ ©   (2006-07-31 09:31) [1]

Здесь с помощью Edit(ов) регулируется, но переделать под TrackBar ,проблемы нет.

uses MMSystem;

function TForm1.GetWaveVolume: DWord;
var Woc : TWaveOutCaps;
Volume : DWord;
begin
result:=0;
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =
MMSYSERR_NOERROR then begin
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then begin
WaveOutGetVolume(WAVE_MAPPER, @Volume);
Result := Volume;
end;
end;
end;

procedure TForm1.SetWaveVolume(const AVolume: DWord);
var Woc : TWaveOutCaps;
begin
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =
MMSYSERR_NOERROR then begin
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
WaveOutSetVolume(WAVE_MAPPER, AVolume);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var LeftVolume: Word;
RightVolume: Word;
begin
LeftVolume := StrToInt(Edit1.Text);
RightVolume := StrToInt(Edit2.Text);
SetWaveVolume(MakeLong(LeftVolume, RightVolume)); ///записать значение
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Caption := IntToStr(GetWaveVolume); //получить значение
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Beep; ///тест
end;


 
MSVN   (2006-07-31 10:11) [2]

\\ но переделать под TrackBar ,проблемы нет.
бьюсь уже час, чего то не выходит


 
medved_68 ©   (2006-07-31 11:06) [3]


> procedure TForm1.Button2Click(Sender: TObject);
> var LeftVolume: Word;
> RightVolume: Word;
> begin
> LeftVolume := StrToInt(Edit1.Text);
> RightVolume := StrToInt(Edit2.Text);
> SetWaveVolume(MakeLong(LeftVolume, RightVolume)); ///записать
> значение
> end;

Попробуй изменить так:
LeftVolume := TrackBar1.Pozition;
RightVolume :=TrackBar2.Pozition;


 
antonn ©   (2006-07-31 11:28) [4]

medved_68 ©   (31.07.06 11:06) [3]
LeftVolume: Word;

у тракбара интервал 0..65535


 
MSVN   (2006-07-31 11:33) [5]

а как например тогда отображать это все в процентах?
рас у у тракбара интервал 0..65535 ???


 
Gydvin ©   (2006-07-31 11:53) [6]

Элементарная математика

i:=65535 div 100;
edit1.Text:=inttostr(trackbar1.Position div i)+"%";


 
MSVN   (2006-07-31 13:27) [7]

огромное всем спасибо!


 
Homo Sapiens ©   (2006-07-31 21:05) [8]


> Phoroon~ ©   (31.07.06 09:31) [1]

Зачем так сложно?
скачиваешь компонент AMixer
там это делается в одну строчку...


 
Ketmar ©   (2006-07-31 21:24) [9]

>Homo Sapiens ©   (31.07.06 21:05) [8]
а зачем вообще что-то писать? всё давно уже написано...


 
GeLLeR ©   (2006-07-31 21:53) [10]


> Ketmar ©   (31.07.06 21:24) [9]

Ну правда


 
MSVN   (2006-08-01 08:10) [11]

Простите, что поднимаю эту ветку, думую заводить новую не стоит.
Вот в чем вопрос. Как узнать на каком уровне громкость расположена сейчас?
a := GetWaveVolume;
не помогает.
спасибо!


 
Gydvin ©   (2006-08-01 08:39) [12]

http://www.delphixfiles.narod.ru/Samples/ChVol.zip



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.055 c
15-1153473735
PSPF2003
2006-07-21 13:22
2006.08.20
Поисковик кодера


2-1154344371
oleolay
2006-07-31 15:12
2006.08.20
Подскажите пожалуйста какими компонентами сделать "слои" на форме


6-1144057516
gamer
2006-04-03 13:45
2006.08.20
Трансляция звука по сети?


1-1152080005
Zilog_
2006-07-05 10:13
2006.08.20
Нужна помощь в переводе файлов заголовков из С++ в Delphi


15-1153836536
oldman
2006-07-25 18:08
2006.08.20
Последний день работы...