Поддержка / Donate
 

WebMoney

Яндекс.Деньги

SMS.Копилка
Деньги@Mail.ru
Rupay
E-gold
PayPal

 

Благодарю за поддержку!

Лента RSS - Новости сайта Новости сайта
Лента RSS - Новости форума Новости форума
Добавить в закладки и поделиться Bookmark and Share

 

Архив исходников

 


Automatic translation

 
English German French
Italian Spanish Portuguese
Greece Japan Chinese
  Korean  

  

 

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Как реализовать регулятор громкости

Автор: Nomadic

Да всё пpосто. Даже, я бы сказал, тyпо. :-)


INT GetMasterVolumeControlID()
{
  // get dwLineID
  MIXERLINE mxl;
  mxl.cbStruct = sizeof(MIXERLINE);
  mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
  if (::mixerGetLineInfo((HMIXEROBJ)ghmx, &mxl,
    MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_COMPONENTTYPE)
    != MMSYSERR_NOERROR)
    return 34;
  // get dwControlID
  MIXERCONTROL mxc;
  MIXERLINECONTROLS mxlc;
  mxlc.cbStruct = sizeof(MIXERLINECONTROLS);
  mxlc.dwLineID = mxl.dwLineID;
  mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
  mxlc.cControls = 1;
  mxlc.cbmxctrl = sizeof(MIXERCONTROL);
  mxlc.pamxctrl = &mxc;
  if (::mixerGetLineControls((HMIXEROBJ)ghmx, &mxlc,
    MIXER_OBJECTF_HMIXER | MIXER_GETLINECONTROLSF_ONEBYTYPE)
    != MMSYSERR_NOERROR)
    return 34;
  return mxc.dwControlID;
}
 
 BOOL SetMasterVolume(DWORD dwVolume)
 {
   MIXERCONTROLDETAILS mxcd;
   MIXERCONTROLDETAILS_UNSIGNED mxcd_u;
   mxcd.cbStruct = sizeof(mxcd);
   mxcd.dwControlID = MasterVolumeControlID;
   mxcd.cChannels = 1;
   mxcd.cMultipleItems = 0;
   mxcd.cbDetails = 4;
   mxcd.paDetails = &mxcd_u;
   mmr = mixerGetControlDetails((HMIXEROBJ)ghmx, &mxcd, 0L);
   if (MMSYSERR_NOERROR != mmr) return FALSE;
   mxcd_u.dwValue = dwVolume;
   mmr = mixerSetControlDetails((HMIXEROBJ)ghmx, &mxcd, 0L);
   if (MMSYSERR_NOERROR != mmr) return FALSE;
   return TRUE;
 }

Переписывать на Delphi, думаю, ни к чему. Надо лишь не забыть добавить uses MMSystem; Громкость отдельных каналов очень просто устанавливается через auxSetVolume и аналогичные.




Источник - Проект "Delphi World" © Выпуск 2002 - 2004
Автор проекта: Акулов Николай

|  Установка и деревянные двери низкие цены. | автоматизация задач и процессов аптек.  |

   Rambler's Top100             Яндекс цитирования