Последние записи
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
1st
Фев
Громкость звука (Делфи)
Posted by obzor under Delphi
У меня на клавиатуре есть кнопки управления звуком( vol+ vol- mute). Но пользоваться ими не совсем удобно. В программе Mkey видел что когда меняешь громкость появляется progress bar где отображается уровень громкости. Теперь хочу написать что-то похожее: программа будет висеть в трее, а окно с прогресс бар-ом будет появляться только при изменении громкости и потом исчезать через 3 секунды.
Вопрос:
1. каким образом можно узнать что громкость меняется (чтобы сразу показать прогресс бар)?
2. как узнать текущую громкость чтобы показать ее в прогресс бар-е?
Вот код:
Unit MPVolume;
Interface
uses
MPlayer;
function GetMPVolume(MP: TMediaPlayer): Integer;
procedure SetMPVolume(MP: TMediaPlayer; Volume: Integer);
Implementation
uses
MMSystem;
const
MCI_SETAUDIO = $0873;
MCI_DGV_SETAUDIO_VOLUME = $4002;
MCI_DGV_SETAUDIO_ITEM = $00800000;
MCI_DGV_SETAUDIO_VALUE = $01000000;
MCI_DGV_STATUS_VOLUME = $4019;
type
MCI_DGV_SETAUDIO_PARMS = record
dwCallback: DWORD;
dwItem: DWORD;
dwValue: DWORD;
dwOver: DWORD;
lpstrAlgorithm: PChar;
lpstrQuality: PChar;
end;
type
MCI_STATUS_PARMS = record
dwCallback: DWORD;
dwReturn: DWORD;
dwItem: DWORD;
dwTrack: DWORD;
end;
procedure SetMPVolume(MP: TMediaPlayer; Volume: Integer);
{ Volume 0 - 1000 !!!}
var
MP_PARAMS: MCI_DGV_SETAUDIO_PARMS;
begin
MP_PARAMS.dwCallback := 0;
MP_PARAMS.dwItem := MCI_DGV_SETAUDIO_VOLUME;
MP_PARAMS.dwValue := Volume;
MP_PARAMS.dwOver := 0;
MP_PARAMS.lpstrAlgorithm := nil;
MP_PARAMS.lpstrQuality := nil;
mciSendCommand(MP.DeviceID, MCI_SETAUDIO,
MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@MP_PARAMS));
end;
function GetMPVolume(MP: TMediaPlayer): Integer;
var
MP_PARAMS: MCI_STATUS_PARMS;
begin
MP_PARAMS.dwCallback := 0;
MP_PARAMS.dwItem := MCI_DGV_STATUS_VOLUME;
mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@MP_PARAMS));
Result := MP_PARAMS.dwReturn;
end;
end.
Думаю, что это то, что тебе нужно
usee MMSystem
procedure SetWaveVolume(const AVolume: DWord);
begin
WaveOUtSetVolume(0,AVolume);
end;
procedure TForm2.TrackBar1Change(Sender: TObject);
begin
SetWaveVolume(MakeLong(TrackBar1.Position*255,TrackBar2.Position*255));
end;
procedure TForm2.TrackBar2Change(Sender: TObject);
begin
SetWaveVolume(MakeLong(TrackBar1.Position*255,TrackBar2.Position*255));
end;
ну а прогресс бар привяжите к трэк бару
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)