IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Громкость звука
sheka
сообщение 18.12.2009 19:31
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Как изменить громкость звука?
т.е. чтобы эффект был такой же как и при изменении звука там, возле часов, где динамик нарисован.

Сообщение отредактировано: sheka - 18.12.2009 19:33
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.12.2009 19:38
Сообщение #2


Гость






Это имел в виду: http://www.delphisources.ru/pages/faq/base...ound_value.html ?
 К началу страницы 
+ Ответить 
sheka
сообщение 18.12.2009 20:14
Сообщение #3


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


а как оно работает? что оно делает? поместил ЛистБокс, кнопку - ничего.
просто еще находил другие, что-то типа такого
uses MMSystem;

procedure 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));

но эффекта 0.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.12.2009 21:59
Сообщение #4


Гость






Вот это только что у меня отработало:
procedure TForm1.myTrackBarChange(Sender: TObject);
var
  vol: Integer;
  volume: longword;
begin
  vol := myTrackBar.Position; // Изначально задал Position = 32000, myTrackBar.Max = 65535, Min = 0
  volume := vol;
  volume := volume + (volume shl 16); // Чем левее - тем тише звук
  waveOutSetVolume(WAVE_MAPPER, volume);
end;
Это позволит тебе регулировать громкость звука из своего приложения. Код - с "Королевства Дельфи".
 К началу страницы 
+ Ответить 
sheka
сообщение 18.12.2009 22:50
Сообщение #5


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Спасибо! я этот код уже встречал, просто не думал, что регулировка звука проигрываемого именно из приложения. а как быть если хочется изменить звук всей системы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.12.2009 22:57
Сообщение #6


Гость






Стой, стой... Я не сказал, что это регулировка звука, проигрываемого из твоего приложения. Я сказал, что регулировать громкость звука ты можешь из своего приложения. Я запустил WinAMP, и изменял из своей программы громкость, нормально изменяется.
 К началу страницы 
+ Ответить 
sheka
сообщение 18.12.2009 23:54
Сообщение #7


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


У меня Win7. Может поэтому?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sheka
сообщение 19.12.2009 0:18
Сообщение #8


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


100пудово поэтому)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2009 1:34
Сообщение #9


Гость






Да, на Висте тоже были замечены проблемы с waveOutSetVolume:
Social.MSDN -> waveOutSetVolume in windows vista

В качестве варианта для изменения громкости, работающего на Висте, приводится вот это: Блог Larry Osterman -> How do I change the master volume in Windows Vista (правда, на С, но WinAPI - разобраться несложно). Возможно, будет работать и на "семерке"
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 4:47
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"