Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.039 c
2-1153490304
Destroyer
2006-07-21 17:58
2006.08.20
Заполнение буфера


4-1144670484
Acidlex
2006-04-10 16:01
2006.08.20
Измерение уровня входного сигнала звуковой карты


5-1137761437
olegz77
2006-01-20 15:50
2006.08.20
Запись/Чтение неопубликованных свойств компонента


2-1154422393
Nagano
2006-08-01 12:53
2006.08.20
поиск файлов


1-1152193172
kvi
2006-07-06 17:39
2006.08.20
getlasterror





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский