Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Ler Strings e executar um som


YaaN

Question

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 to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

  • 0

Não amigo.

Eu quero deixar dois idiomas no meu aplicativo (Inglês e Português) mudando Sons e Textos , sendo que o usuário escolhe o idioma de exibição no ComboBox.

Edited by YaaN
Link to comment
Share on other 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 to comment
Share on other 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 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
      152.2k
    • Total Posts
      652k
×
×
  • Create New...