Fórum Media Player #220138
12/03/2004
0
Tenho um sistema de gerenciamento de telemensagens, e neste sistema tem uma rotina para enviar a telemensagem ao destinatário, o usuário seleciona a telemensagem (em mp3, ou qq outro tipo de audio) e tem os botões Play, Pause e Stop para o seu gerenciamento.
Só que eu preciso de algo mais sofisticado, tipo mostrar o andamento do tempo da música, avançar para o meio da música, limitar o tempo de execução da música (isso para mostrar um pedaço da música para o cliente, ex: 20 segundos), etc...
Alguém tem algum exemplo disso pra mim ajudar?
Marco
Curtir tópico
+ 0Posts
12/03/2004
Cebikyn
http://www.un4seen.com/
Tb tem a DSPack 1.05, suporta bem mais formatos de áudio (MP3, WMA, WAV, SND, AU, AIF, entre outros). Tb faz tudo o que vc quer, mas é mais difícil de ser usada e demora um pouco para carregar arquivos. Está disponível em:
http://www.progdigy.com/
Se quiser um exemplo, tem o PBB Player, um tocador de mídias (áudio e vídeo, incluindo CDs e DVDs) que usa as duas opões citadas, o código fonte e o programa compilado podem ser obtidos em:
http://paginas.terra.com.br/informatica/cebikyn/setup.exe (1,98 Mb)
[size=9:700486e8dd](clicar com o botão diretio do mouse e selecionar ´Salvar Destino como...´, caso contrário aparecerá uma msg de erro)[/size:700486e8dd]
Qualquer dúvida sobre qualquer uma das opções citadas, pode deixar uma msg como resposta a este tópico.
Gostei + 0
17/03/2004
Marco
Consegui baixar essa biblioteca Bass, vi os exemplos... mas queria algo mais objetivo... precisava mesmo só por um indicador de tempo da música, e tb conseguir determinar o quanto tempo a música será tocada (ex: 20 segundos).
Tem alguma sugestão ou exemplo?
Gostei + 0
17/03/2004
Sherikan
Gostei + 0
17/03/2004
Cebikyn
Supondo que há 1 Timer (Enabled := False; Interval := 500), 1 ScrollBar e um Botão no Form:
uses
BASS;
var
Channel: DWORD;
{ No OnCreate de seu form principal: }
procedure TForm1Create(Sender: TObject);
begin
BASS_Init(1,44100,0,Handle,nil);
end;
{ No OnDestroy do mesmo form: }
procedure TForm1Destroy(Sender: TObject);
begin
BASS_Free;
end;
{ Para abrir a música e toca-la: }
procedure TForm1.Button1Click(Sender: TObject);
begin
Channel := BASS_StreamCreateFile(False, PChar(´C:\Arquivo.mp3´),0,0,BASS_STREAM_AUTOFREE);
BASS_StreamPlay(Channel, False, 0);
Timer1.Enabled := True;
end;
{ Coloque em um Timer, para indicar o Progresso da música, usando um TScrollBar }
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ScrollBar1.Max := Trunc(BASS_ChannelBytes2Seconds(BASS_StreamGetLength(Channel)));
ScrollBar1.Position := Trunc(BASS_ChannelBytes2Seconds(BASS_ChannelGetPosition(Channel)));
end;
{ Coloque em um Timer (pode ser o mesmo), para limitar a execução da música: }
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if BASS_ChannelBytes2Seconds(BASS_ChannelGetPosition(Channel)) >= 20 then // 20 segundos
BASS_ChannelStop(Channel);
end;Para Pausar a música, use BASS_ChannelPause(Channel), para voltar do Pause: BASS_ChannelResume(Channel), e para dar Stop: BASS_ChannelStop(Channel).
Eu escrevi isso ´de cabeça´, então pode haver algum erro.
Qualquer dúvida, deixe como resposta a este tópico.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)