Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.28;
Скачать: CL | DM;

Вниз

Громкость и её изменение   Найти похожие ветки 

 
Opera ©   (2003-04-09 09:08) [0]

Помогите с кодом пожалуйста.
Что нужно написать на TrackBar чтобы при передвижении изменялась громкость? (Вся)???


 
Opera ©   (2003-04-09 18:33) [1]

Правда никто не знает? А если кто может еще и регулировку баланса не подскажите???


 
Думкин ©   (2003-04-10 09:40) [2]

WaveOutSetVolume - например.
MidiOutSetVolume.
В этом направлении. А еще
IDirectSoundBuffer
function SetVolume(lVolume: integer) : HResult; stdcall;
Тебе чего надо?


 
max1981 ©   (2003-04-10 09:49) [3]

Интересный вопрос. Какую-то громкость и баланс можно менять с помощью mmSystem (Master или Wave - точно не помню). Возможно там есть возможность и с другой громкостью работать...
Если найдешь - пиши - самому интересно. :)


 
max1981 ©   (2003-04-10 10:01) [4]

WaveOutSetVolume и MidiOutSetVolume - действительно замечательно работают, но есть же еще куча настроек громкости, которые тоже хотелось бы менять...
Кстати прошел слух что в WinXP вообще не работает mmSystem...
Правда что ли? Или ето просто слух?


 
Lister   (2003-04-10 16:07) [5]

Кто бы еще подсказал можно ли менять громкость у каждого MPlayer а, если их используется в программе несколько?


 
max1981 ©   (2003-04-12 13:21) [6]


>Lister
У MPlayer нет такого свойства как громкость. Можно изменять громкость входных данных - т.е. просто делить/умножать их на какую-нибудь константу.


 
Blacked ©   (2003-04-14 17:28) [7]

Вот пример, тут всё работает:
var
NumDevs: Integer;
waveCaps: TWaveOutCaps;
Volume: DWORD;

procedure TForm1.VolumeTBar1Change(Sender: TObject);
begin
Volume:=VolumeTBar1.Position*65537;
NumDevs:=waveOutGetNumDevs;
waveOutGetDevCaps(0, @waveCaps, SizeOf(waveCaps));
if waveCaps.dwSupport and WAVECAPS_VOLUME <> 0 then
( 0, Volume) Вот пример, тут всё работает:
var
NumDevs: Integer;
waveCaps: TWaveOutCaps;
Volume: DWORD;

procedure TForm1.VolumeTBar1Change(Sender: TObject);
begin
Volume:=VolumeTBar1.Position*65537;
NumDevs:=waveOutGetNumDevs;
waveOutGetDevCaps(0, @waveCaps, SizeOf(waveCaps));
if waveCaps.dwSupport and WAVECAPS_VOLUME <> 0 then
waveOutSetVolume(0, Volume);
end;


 
titnn ©   (2003-04-15 07:30) [8]

тоже столкнулся с проблемой mmSystem не возможно поменять MasterVolume , поставил компоненту ssVolumeController , меняет все что хошь ...


 
Dimon111111   (2003-04-30 21:05) [9]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
Track1: TTrackBar;
Track2: TTrackBar;
Track3: TTrackBar;
procedure Track1Change(Sender: TObject);
procedure Track3Change(Sender: TObject);
procedure Track2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
uses mmsystem;

function GetWaveVolume: DWord;
var
Woc : TWAVEOUTCAPS;
Volume : DWord;
begin
result:=0;
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) = MMSYSERR_NOERROR then
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
begin
WaveOutGetVolume(WAVE_MAPPER,@Volume);
Result := Volume;
end;
end;

procedure SetWaveVolume(const AVolume: DWord);
var
Woc : TWAVEOUTCAPS;
begin
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =MMSYSERR_NOERROR then
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
WaveOutSetVolume(WAVE_MAPPER, AVolume);
end;


procedure TForm1.Track2Change(Sender: TObject);
var
LeftVolume: Word;
RightVolume: Word;
begin
if Track2.Position>Track1.position then
Track3.Position:=Track2.position;
LeftVolume :=Track1.Position*655;RightVolume := Track2.Position*655;
SetWaveVolume(MakeLong(LeftVolume, RightVolume));
end;


procedure TForm1.Track1Change(Sender: TObject);
var
LeftVolume: Word;
RightVolume: Word;
begin
if Track1.Position>Track2.position then
( MakeLong(LeftVolume, RightVolume) unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
Track1: TTrackBar;
Track2: TTrackBar;
Track3: TTrackBar;
procedure Track1Change(Sender: TObject);
procedure Track3Change(Sender: TObject);
procedure Track2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
uses mmsystem;

function GetWaveVolume: DWord;
var
Woc : TWAVEOUTCAPS;
Volume : DWord;
begin
result:=0;
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) = MMSYSERR_NOERROR then
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
begin
WaveOutGetVolume(WAVE_MAPPER,@Volume);
Result := Volume;
end;
end;

procedure SetWaveVolume(const AVolume: DWord);
var
Woc : TWAVEOUTCAPS;
begin
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =MMSYSERR_NOERROR then
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
WaveOutSetVolume(WAVE_MAPPER, AVolume);
end;


procedure TForm1.Track2Change(Sender: TObject);
var
LeftVolume: Word;
RightVolume: Word;
begin
if Track2.Position>Track1.position then
Track3.Position:=Track2.position;
LeftVolume :=Track1.Position*655;RightVolume := Track2.Position*655;
SetWaveVolume(MakeLong(LeftVolume, RightVolume));
end;


procedure TForm1.Track1Change(Sender: TObject);
var
LeftVolume: Word;
RightVolume: Word;
begin
if Track1.Position>Track2.position then
Track3.Position:=Track1.position;
LeftVolume :=Track1.Position*655;
RightVolume := Track2.Position*655;
SetWaveVolume(MakeLong(LeftVolume, RightVolume));
end;
procedure TForm1.Track3Change(Sender: TObject);
var
LeftVolume: Word;
RightVolume: Word;
begin
Track1.Position:=Track3.position;
Track2.Position:=Track3.position;
LeftVolume :=Track1.Position*655;
RightVolume := Track2.Position*655;
SetWaveVolume(MakeLong(LeftVolume, RightVolume));
end;

end.



тут с балансом и все такое........



Страницы: 1 вся ветка

Текущий архив: 2003.08.28;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
3-92080
stone
2003-08-01 14:10
2003.08.28
Иерархические структуры (деревья) в Access


3-92039
Антон Ю.
2003-08-01 14:38
2003.08.28
Fetch All для запросов в FastReport автономных отчетах


14-92186
SeAl
2003-08-10 15:15
2003.08.28
Прокся


3-92028
Alex_***
2003-08-04 14:33
2003.08.28
Извещение сервером клиента


3-92082
Andrey_1
2003-08-01 10:19
2003.08.28
как программно переключить DBEdit от 1го ист. данных к другому