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

(Resolvido) Ler Strings e executar um som


YaaN

Pergunta

Fala galera.

Bom, como eu "leio" uma String digitada pelo usuário em um Memo e executo um som?

Por exemplo, coloco junto com meu aplicativo os arquivos "Sound_Sucess.mp3" e "Sound_Error.mp3" , se o usuário digitar " A " no Memo , o aplicativo toca o som "Sound_Sucess.mp3", mas, se o usuário digitar "B" o aplicativo irá tocar o som " Sound_Error.mp3 "..

Acho que deu para entender, não é?

Já pesquisei bastante sobre isso e não achei nada que me ajudasse.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

porque tem que ser em um memo ? não poderia ser em um edit ?

exemplo 1

uses MMSystem;

procedure TForm1.Button1Click(Sender: TObject);
begin

if trim(Edit1.text = 'A') then
   PlaySound('C:\Sound_Sucess.mp3',1,SND_ASYNC);

if trim(Edit1.text = 'B') then
   PlaySound('C:\Sound_Error.mp3',1,SND_ASYNC);

end;
se não tocar mp3, use o componente MediaPlayer ... voce tambem pode armazenar a musica dentro de um arquivo de recursos .RES
Procedure TForm1.Button2Click(Sender: TObject);
var
 rStream: TResourceStream;
 fStream: TFileStream;
 fname: string;
begin
 {this part extracts the mp3 from exe}
 fname:=ExtractFileDir(Paramstr(0))+'Intro.mp3';
 rStream := TResourceStream.Create
           (hInstance, 'Intro', RT_RCDATA);
 try
  fStream := TFileStream.Create(fname, fmCreate);
  try
   fStream.CopyFrom(rStream, 0);
  finally
   fStream.Free;
  end;
 finally
  rStream.Free;
 end;
 {this part plays the mp3}
 MediaPlayer1.Close;
 MediaPlayer1.FileName:=fname;
 MediaPlayer1.Open;
end;

é só seguir a mesma lógica do exemplo acima

ou faça uma pesquisa no forum

http://scriptbrasil.com.br/forum/index.php...mp;highlite=mp3

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Jhonas.

Agora outra duvida, como faço para dividir o aplicativo em 2 idiomas, sendo que existe um ComboBox para a escolha do idioma.

Assim, caso o idioma na ComboBox estiver em PT-BR ele executa o "Som_Erro.mp3" e "Som_Sucesso.mp3" , se estiver em Inglês ele executa o "Sound_Error.mp3" e "Sound_Sucess.mp3" ?

Link para o comentário
Compartilhar em outros sites

  • 0

voce esta se referindo ao idioma do teclado ? se for isso não há necessidade disso

se mesmo assim quiser usar esse combobox ficaria assim ( mas não vejo lógica nisso )

uses MMSystem;

procedure TForm1.Button1Click(Sender: TObject);
begin

if ComboBox1.Items.Strings[ComboBox1.ItemIndex] = 'PT-BR' then
   begin 

      if trim(Edit1.text = 'A') then
         PlaySound('C:\Som_Sucesso.mp3',1,SND_ASYNC);

      if trim(Edit1.text = 'B') then
         PlaySound('C:\Som_Erro.mp3',1,SND_ASYNC);


   end
else
   begin

      if trim(Edit1.text = 'A') then
         PlaySound('C:\Sound_Sucess.mp3',1,SND_ASYNC);

      if trim(Edit1.text = 'B') then
         PlaySound('C:\Sound_Error.mp3',1,SND_ASYNC);

   end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Opsss ... erro na digitação

uses MMSystem;

procedure TForm1.Button1Click(Sender: TObject);
begin

if ComboBox1.Items.Strings[ComboBox1.ItemIndex] = 'PT-BR' then
   begin 

      if trim(Edit1.text) = 'A' then
         PlaySound('C:\Som_Sucesso.mp3',1,SND_ASYNC);

      if trim(Edit1.text) = 'B' then
         PlaySound('C:\Som_Erro.mp3',1,SND_ASYNC);


   end
else
   begin

      if trim(Edit1.text) = 'A' then
         PlaySound('C:\Sound_Sucess.mp3',1,SND_ASYNC);

      if trim(Edit1.text) = 'B' then
         PlaySound('C:\Sound_Error.mp3',1,SND_ASYNC);

   end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

acho que o PlaySound só executa som wav e midi

2 opções

ou voce converte mp3 para wav

ou então voce pode tentar usar o componente mediaplayer ( da paleta system )

uses MMSystem;

procedure TForm1.Button1Click(Sender: TObject);
begin

if ComboBox1.Items.Strings[ComboBox1.ItemIndex] = 'PT-BR' then
   begin

      if trim(Edit1.text) = 'A' then
         MediaPlayer1.FileName := ('C:\Som_Sucesso.mp3');

      if trim(Edit1.text) = 'B' then
         MediaPlayer1.FileName := ('C:\Som_Erro.mp3');

      MediaPlayer1.Open;
      MediaPlayer1.Play;
   end
else
   begin

      if trim(Edit1.text) = 'A' then
         MediaPlayer1.FileName := ('C:\Sound_Sucess.mp3');

      if trim(Edit1.text) = 'B' then
         MediaPlayer1.FileName := ('C:\Sound_Error.mp3');

      MediaPlayer1.Open;
      MediaPlayer1.Play;
   end;
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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...