Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
3-92006
IKA
2003-08-04 15:04
2003.08.28
Filtering Paradox in Delphi


3-92048
SPIRIT
2003-08-04 12:24
2003.08.28
При запуске приложения выскакивает сообщение


3-92067
syte_ser78
2003-07-30 22:44
2003.08.28
Запись в DBGrib


3-92014
SPIRIT
2003-08-05 10:09
2003.08.28
Ключ = 0


3-91974
dolmat
2003-08-06 10:39
2003.08.28
Сортировка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский