Форум: "Media";
Текущий архив: 2003.08.28;
Скачать: [xml.tar.bz2];
ВнизГромкость и её изменение Найти похожие ветки
← →
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 вся ветка
Форум: "Media";
Текущий архив: 2003.08.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c