Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.04.2011, 21:30
minik86 minik86 вне форума
Прохожий
 
Регистрация: 29.04.2011
Сообщения: 5
Репутация: 10
По умолчанию как убавить/прибавить звук без затрагивания стандартного микшера windows

вообщем возникла такая проблема, моя прога воспроизводит звуки в формате wav в одном MediaPlayer, в другом у меня в это время играет фоновая музыка, и мне нужно, чтобы я смог регулировать громкость звуков и громкость музыки отдельно, при этом не затрагивая системную громкость.
даже лучше не регулировать, мне нужно чтобы звуки были громче, чем фоновая музыка раза так в 3.
(зы везде советуют в какой нить муз.проге убавить изначальную громкость музыки - сразу говорю - такой вариант не катит)
Ответить с цитированием
  #2  
Старый 30.04.2011, 00:49
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Такой функции в стандартном MediaPlayer нету. Я бы задумался об использовании bass.dll...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 01.06.2011, 07:45
foka2002 foka2002 вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 10
Репутация: 10
По умолчанию

А в конфигурации динамиков линейный вход присутствует?
Ответить с цитированием
  #4  
Старый 01.06.2011, 09:19
yanch234 yanch234 вне форума
Прохожий
 
Регистрация: 31.05.2011
Сообщения: 10
Репутация: 10
По умолчанию

Если в конфигурации динамиков есть линейный вход, то можно сделать это через него? Или все -таки надо использовать программу?
Ответить с цитированием
  #5  
Старый 01.06.2011, 13:46
RazzSpace RazzSpace вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 10
Репутация: 10
По умолчанию

Есть специальный аддон для этого.
Ответить с цитированием
  #6  
Старый 21.06.2011, 11:44
Аватар для Klassenas
Klassenas Klassenas вне форума
Новичок
 
Регистрация: 25.05.2009
Адрес: Казахстан, Павлодар
Сообщения: 87
Версия Delphi: Rad Studio 2010
Репутация: 1570
По умолчанию

Я такую фишку уже делал. Там регуляция громкости привязана непосредственно к источнику звука, к проге-плееру. Код я нашёл в DelphiWorld. Только надо искать внимательно, там ещё описаны три-четыре способа, которые нам не подходят.
__________________
Если ты чего-то не знаешь, значит есть шанс научиться чему-то новому
Ответить с цитированием
  #7  
Старый 23.06.2011, 11:05
Аватар для Klassenas
Klassenas Klassenas вне форума
Новичок
 
Регистрация: 25.05.2009
Адрес: Казахстан, Павлодар
Сообщения: 87
Версия Delphi: Rad Studio 2010
Репутация: 1570
По умолчанию

Вот, нашёл код процедур, у меня работает безукоризненно.
Код:
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
  p: MCI_DGV_SETAUDIO_PARMS;
begin
  { Volume: 0 - 1000 }
  p.dwCallback := 0;
  p.dwItem := MCI_DGV_SETAUDIO_VOLUME;
  p.dwValue := Volume;
  p.dwOver := 0;
  p.lpstrAlgorithm := nil;
  p.lpstrQuality := nil;
  mciSendCommand(MP.DeviceID, MCI_SETAUDIO,
    MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p));
end;

function GetMPVolume(MP: TMediaPlayer): Integer;
var p: MCI_STATUS_PARMS;
begin
  p.dwCallback := 0;
  p.dwItem := MCI_DGV_STATUS_VOLUME;
  mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p));
  Result := p.dwReturn;
  { Volume: 0 - 1000 }
end;
__________________
Если ты чего-то не знаешь, значит есть шанс научиться чему-то новому
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter