Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Exibir Barra de progresso ao tocar som


Aleksander

Pergunta

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 para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...