Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: звук
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Multimedia, Графика, Игры
Ljolikkk
Я вобще новичёк в програмировании huh.gif . Я ещё только учусь. Вот решил написать свою програмку для воспроизведения mp3. Вроде написал, но я незнаю как зделать регулировку звука(прямо в этой программе а не где-то в другом месте). Подскажите пожалуйста код.
Chernobyl
создаёте например (TrackBar)

uses MMSystem;

function GetVolume: 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 SetVolume(Value: 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, value);
end;


//Получить громкость
{var
vol:longint;
begin
vol:=GetVolume;
TrackBar1.Position:=(vol shr 16);}
//Установить громкость
{var
vol:longint;
begin
Vol:=(TrackBar1.Position shl 16)+TrackBar1.Position;
SetVolume(vol);}
M@T$
Переделал эти функции под свои нужды.......


вот что получилось....:::

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function GetVolume: 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 TForm1.FormCreate(Sender: TObject);
var
vol: longint;

begin
vol:=GetVolume;
Label1.Caption:=IntToStr(vol shr 16);
end;

end.




unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    ListBox1: TListBox;
    Button1: TButton;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
  cap: TWaveInCaps;
begin
  for i := 0 to  waveInGetNumDevs  do
  begin
    waveInGetDevCaps(i, Addr(cap), SizeOf(cap));
    ListBox1.Items.Add(cap.szPname  )
  end;
  end;

  

procedure TForm1.Button1Click(Sender: TObject);
var
  vol : longint;

begin
  waveOutGetVolume( ListBox1.ItemIndex, @Vol);
   Label1.Caption:=IntToStr(vol shr 16);
end;

end.





И тот и тот работают только когда я залажу сюда:

Мастер проверки аудиоустройств=>Проверка динамиков
M@T$
Больше ниначто не реагируют(нинакакие другие изменения)


Подскажите как сделать чтобы программа определяла уровень громкости сигнала, который подаётся на вход аудикарты
Chernobyl
Не с аудио картой не ко мне!
А этот код я исползовал для своего проигрывателя(*.mp3,*.wav,*.mid,*.ogg).
Когда Winamp заглююююююююючил.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2009 IPS, Inc.