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

(Resolvido) Lista de Musicas... erro


António44

Pergunta

Reparei que o tópico esta resolvido,e de certa maneira esta...só uma pequena duvida aqui,eu estou gravando os link criados pelo no listbox em base de dados para aceder as musicas quando quiser e não voltar a procurar.

C:\Lionel\ACD\ACDC   If You Want Blood (You Got It)(Official Audio).mp3

O problema é que se a musica for removida da pasta gera um erro... ''is not a válid integer value ,como ultrapassar esse erro com uma mensagem.

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

ok... fica valendo esse agora

para contornar esse problema, basta voce testar se o arquivo existe

If not(fileexists(' C:\Lionel\ACD\ACDC   If You Want Blood (You Got It)(Official Audio).mp3 ')) then Showmessage('Arquivo inexistente');

ou seja, quando voce escolher a musica, voce deve testar, para ver se ela existe na pasta

outra solução seria voce salvar as suas musicas em uma tabela no delphi, atraves de um campo tipo BLOB

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

outra solução seria voce salvar as suas musicas em uma tabela no delphi, atraves de um campo tipo BLOB

Não tenho ideia de  como guardar no BLOB e depois reproduz como? usa-se o mesmo codigo que testamos no post anterior ???

 

se puder dar uma ajuda eu agradeço.

Abraço

 

Link para o comentário
Compartilhar em outros sites

  • 0

Ok... use o Database Desktop do delphi para criar a sua tabela  ( Paradox )

vamos criar uma tabela bem simples

nome ( A ) ( 30 )  //// campo alfanumerico para o nome da musica

mp3 ( O ) ( 5 )  ////  campo OLE para a musica MP3 de tamanho max de 5 Mb

OBS: depois se voce quiser voce pode incrementar mais coisas

-------------------------------------------------------------------------

depois crie uma nova aplicação

coloque esses componentes para acesso a tabela paradox e faça os links entre os componentes e a tabela

Query1 - DataSetProvider1 - ClientDataSet1 - DataSource1

-------------------------------------------------------------------------

vou criar um código para voce ver como fazer

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

ok...  fiz um codigo bem simples para voce entender

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Provider, DB, DBClient, DBTables, StdCtrls, MPlayer, Grids,
  DBGrids, ExtCtrls, DBCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Query1: TQuery;
    DataSource1: TDataSource;
    OpenDialog1: TOpenDialog;
    MediaPlayer1: TMediaPlayer;
    Button2: TButton;
    Query1NOME: TStringField;
    Query1MP3: TBlobField;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  nome_musica : string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 If opendialog1.Execute Then
 begin
   // musica selecionada na pasta
   nome_musica := opendialog1.filename;

   // gravar na tabela
   Query1.Active := false;
   Query1.Active := true;

   Query1.Last;
   Query1.Insert;
   Query1.Edit;

   Query1NOME.Value := nome_musica;
   Query1MP3.LoadFromFile(nome_musica);
   Query1.Post;

   showmessage('Musica Salva');
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   Query1.Active := false;
   Query1.Active := true;

   MediaPlayer1.Close;

   // tirar a musica da tabela e salvar no disco
   Query1MP3.SaveToFile('c:\musica.mp3');

   // abrir a musica pelo MediaPlayer e tocar

   MediaPlayer1.FileName := 'c:\musica.mp3';
   MediaPlayer1.Open;
   MediaPlayer1.Play;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
   Query1.Active := false;
   Query1.Active := true;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
    MediaPlayer1.Close;

   // tirar a musica da tabela e salvar no disco
   Query1MP3.SaveToFile('c:\musica.mp3');

   // abrir a musica pelo MediaPlayer e tocar

   MediaPlayer1.FileName := 'c:\musica.mp3';
   MediaPlayer1.Open;
   MediaPlayer1.Play;
end;

end.

OBS: SELECT * FROM MP3

essa é a select que esta dentro da query1 ( SQL )

no lugar do MediaPlayer voce pode usar o código anterior ....  só fiz com ele para ficar mais facil

procedure TForm1.Button8Click(Sender: TObject);
begin
   OpenMP3('c:\musica.mp3');
   Gauge1.MaxValue := GetMP3Len;
   PlayMP3;
   Timer1.Enabled := true;
end;

voce só terá que modificar o código, para colocar a rotina de salvar a musica no banco de dados e depois tira-la para tocar

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Mesmo que tenha um titulo diferente fica no lugar da anterior ?

sim

pensei como tem titulo diferente criaria novo file  ?

a musica que sera salva na tabela, vai ficar com o titulo original

a musica que sera tocada, terá sempre o mesmo nome ( musica.mp3) , mas voce pode mostrar o titulo original no Form

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Tenho aqui uma duvida no Trackbar.

Com Max= 22 ele funciona bem, mas se eu meter o Max=100 e por exemplo Position=40 inicia bem o som mas quando aumento no trackbar nos 50%  e nos 100% quase fica sem som porque será?

Eu queria usar um som acima dos Max=22 ? 

procedure TRegistoMolduras.TrackBar1Change(Sender: TObject);
var
   Count , i : longint;  // 4369
begin
   Count := waveOutGetNumDevs;
   for i := 0 to Count do
     begin
        waveOutSetVolume(i,longint(TrackBar1.position*1369)*65536+longint(TrackBar1.position*1369));
     end;

end;

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

por causa desse calculo  ....  para o valor de 1369 o Trackbar tem que ser 22 para não sumir o som

        waveOutSetVolume(i,longint(TrackBar1.position*1369)*65536+longint(TrackBar1.position*1369));

se voce colocar no calculo o valor 4369 o Trackbar tem que ser 13

voce pode tentar usar a rotina de som do seu primeiro código, e ver o resultado

abraço

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

 dando erro aqui.

Erro .  Cannot modify a read-only dataset.

procedure TForm1.FlatSpeedButton1Click(Sender: TObject);
begin
 If opendialog1.Execute Then
 begin
   // musica selecionada na pasta
   nome_musica := opendialog1.filename;

   // gravar na tabela
   Query1.Active := false;
   Query1.Active := true;

   Query1.Last;
   Query1.Insert;
   Query1.Edit;

   Query1Nome.Value := nome_musica;
  Query1MP3.LoadFromFile(nome_musica);
   Query1.Post;

   showmessage('Musica Salva');
 end;
end;

 

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...