Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Exibir Barra de progresso ao tocar som


Aleksander

Question

Olá amigos, tenho 2 questões sobre Barra de progresso.

Questão 1: Estou usando um arquivo de recurso que toca som .Wav, desejo colocar uma Barra de progresso que acompanhe a execução da música, e um Label que exiba o progresso em porcentagem, não sei como me referir ao arquivo de Recurso para usar a Barra de progresso e o Label.

A chamada do som Wav.

{$R *.dfm}
{$R SomWave.Res}

procedure TForm1.Button1Click(Sender: TObject);
begin
PlaySound('SomWave',hInstance,Snd_Async or Snd_Memory or Snd_Resource);
end;
end.
Questão 2: Aqui tenho o código que uso para mp3, consegui colocar uma Barra de progresso. Desejo que ao completar a Barra de progresso o botão Stop do MediaPlayer1 seja clicado, tentei algumas combinações sem resultado. É possível uma Barra de progresso cheia acionar o clique de um botão? A chamada do som mp3
{$R *.dfm}
{$R Som.res}

procedure TForm1.Button1Click(Sender: TObject);
var
rStream: TResourceStream;
fStream: TFileStream;
fname: string;
begin
fname:=ExtractFileDir(Paramstr(0))+'Som.mp3';
rStream := TResourceStream.Create (hInstance, 'Som', RT_RCDATA);
try
fStream := TFileStream.Create(fname, fmCreate);
try fStream.CopyFrom(rStream, 0);
finally
fStream.Free;
end;
finally
rStream.Free;
end;
ProgressBar1.Max:=0;
MediaPlayer1.Close;
MediaPlayer1.FileName:=fname;
MediaPlayer1.Open;
ProgressBar1.Max := mediaPlayer1.Length;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    ProgressBar1.Position := MediaPlayer1.Position;
end;
end.

Grato a todos pela atenção.

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
desejo colocar uma Barra de progresso que acompanhe a execução da música, e um Label que exiba o progresso em porcentagem

troque o componente ProgressBar1 pelo Gauge1 da paleta Sample e faça estas alterações

procedure TForm1.Button1Click(Sender: TObject);
var
   rStream: TResourceStream;
   fStream: TFileStream;
   fname: string;
begin
   fname:=ExtractFileDir(Paramstr(0))+'Som.mp3';
   rStream := TResourceStream.Create (hInstance, 'Som', RT_RCDATA);
   try
      fStream := TFileStream.Create(fname, fmCreate);
      try fStream.CopyFrom(rStream, 0);
      finally
      fStream.Free;
      end;
   finally
      rStream.Free;
   end; }
   Gauge1.MaxValue:=0;
   Timer1.Interval := 100;
   MediaPlayer1.Close;
   MediaPlayer1.FileName:=fname;
   MediaPlayer1.Open;
   MediaPlayer1.Play;
   Gauge1.MaxValue := mediaPlayer1.Length;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    Gauge1.Progress := MediaPlayer1.Position;
    if Gauge1.MaxValue = Gauge1.Progress then
       MediaPlayer1.Stop;
end;

abraço

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...