Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

регулировка звука(только не баньте тему плз)


Змей ©   (2006-01-24 13:49:00) 

Доброго времени суток Мастера!
на конференции media мне уже 3 раза ничего не отвечали! вот мучаюсь уже с пол года! может быть ктонибудь знает? помогите чем могите:)
пользуюсь MediaPlayer'om
изменяю громкость звука в проге и в винде одновременно можно ли отдельно это делать?
Изменение громкости звуков в Windows

uses MMSystem;

function 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 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.Button1Click(Sender: TObject);
begin
Beep;
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;

таким образом звук вырубается в винде. И нужно при нажатии клавиши ну к примеру “Тихо” вырубался звук, который проигрывается в tmediaplayer. И при нажатии еще раз звук обратно возвращался. Но при этом звук винды не изменялся. Потому как после закрытия приложения(например мы поставили на минимум), звук в винде тоже на минимуме.
Заранее Спасибо!!!


Змей   (2006-02-04 01:56:00) [1]

этот компонент хороший! скачал и поставил DelphiX там есть DirectSound но он только wav юзает а делает то что нужно
вот если бы все форматы крутил было бы суппер


МегаПупс   (2006-01-25 08:43:00) [2]

Я говорю попробуй скачать готовый компонент.
Гугл тебе поможет:) могу дать прямой линк но я снего ничего не качал, поэтому не знаю насколько там компонент хороший:)

http://vabank3.narod.ru/com/volume.zip


Digitman   (2006-01-25 08:13:00) [3]


> вот например в винампе регулирую звук, открываю виндовозовскую
> панель Volume control и там ничего не меняется


потому что Winamp изменяет АЧХ звукового потока "на лету"


ASoft   (2006-01-25 03:38:00) [4]

Поищи сторонние компоненты для работы со звуком. Наверняка найдешь что-то сногсшибательное и забудешь свои печали - 100%


Змей   (2006-01-25 01:26:00) [5]

допустим даже понизил я громкость в 0 и сворачиваю программу и хочу открыть винамп или ченидь другое и послушать другую песню не трогая то что играет в моей программе :).
возможно ли это вообще с медиа плеером


Змей   (2006-01-25 01:12:00) [6]

вот например в винампе регулирую звук, открываю виндовозовскую панель Volume control и там ничего не меняется
а тут если я закрыл свою прогу когда у меня звук на нуле и потом открываю винамп то ничего не слышу приходится лезть обратно Volume control  и увеличивать звук:( воть
ну лан буим думать


Змей   (2006-01-25 01:09:00) [7]

пасиба но работает точно также как и тот код что я написал
блин


МегаПупс   (2006-01-24 20:40:00) [8]

На не плач должно работать:)

var
 Form1: TForm1;
 volume: LongWord;

procedure TForm1.FormCreate(Sender: TObject);
begin
  volume := (TrackBar1.Position - TrackBar1.Max+1)* 6500;
  volume := volume +   (volume shl 16);
  waveOutSetVolume(WAVE_MAPPER,volume);
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 volume := 6500* (TrackBar1.Max - TrackBar1.Position);
 volume := volume +   (volume shl 16);
 waveOutSetVolume(WAVE_MAPPER,volume);
end;


Не забудь mmSystem подключить:)
И вообще раз уж ты полгода надрывался мог готовый компонент скачать
я слышал таких уже много наделали. Но лучше конечно своими руками:)
Так что держи:)


Змей   (2006-01-24 20:21:00) [9]

блин опять в обломе :(((


Германн   (2006-01-24 18:46:00) [10]


> Змей ©   (24.01.06 18:25) [2]
>
> а можно ли какнидь в Media Player изменять громкость звука?
>  
> на Медиа спросил несколько раз раза 2 точно послали на..
> .:)

Можно.
Но нельзя изменить громкость только в нем! В любом случае громкость изменяется в Виндововском микшере.
Есть только возможность преобразовывать на лету поток медиа. Но это очень не просто!


Змей   (2006-01-24 18:25:00) [11]

а можно ли какнидь в Media Player изменять громкость звука?
на Медиа спросил несколько раз раза 2 точно послали на...:)


Digitman   (2006-01-24 14:07:00) [12]


> мучаюсь уже с пол года


За это время можно было прочитать кучу умных книжек и понять, что к чему есть на самом деле.


изменяю громкость звука в проге


Нет в твоей "проге" никакой "громкости звука".
Используя tmediaplayer ты используешь MCI-интерфейс "винды", и с помощью этого интерфейса ты управляешь микшером, который един для ЛЮБЫХ программ, работающих под управлением ОС.


Наверх

Титульная страница Поиск, карта сайта Написать письмо