Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Reproducir Sonido!!please (https://www.clubdelphi.com/foros/showthread.php?t=31564)

ajrudilla 11-05-2006 10:13:49

Reproducir Sonido!!please
 
Hola a todos.Me gustaria saber como reproducir un sonido en un mediaplayer continuamente, es decir, al darle a un boton de TButton(me imagino que deberá estar relacionado con el MediaPlayer) se escuche un sonido de por ejemplo 5 segundos pero quiero que se este ejecutando continuamente.Y a parte tener otro boton de Tbuton para apagar el sonido cuando quiera.
Os agradeceria si alguien me puede echar una mano en esto ya que me urge un poco.Graciasy perdonar las molestias por mi insistencia.
Gracias

Acanol 11-05-2006 10:50:19

Muy buenas, espero el siguiente enlace te sirva de ayuda:

http://www.clubdelphi.com/foros/show...oducir+sonidos

Este tiene buena pinta
http://clubdelphi.com/foros/showthre...t=TmediaPlayer

Un poquito de teoria...
http://www.q3.nu/trucomania/truco.cgi?531&esp

ajrudilla 11-05-2006 11:04:26

Gracias.Voy a echarle un vistazo

ajrudilla 11-05-2006 13:05:34

Alguien me puede explicar para que sirve el MediaPlayer.Mode.....Porque no entiendo como hacer esto.Gracias

Acanol 11-05-2006 16:48:36

Mediaplayer.mode te indica en que estado se encuentra el mediaplayer:
Not ready, Stopped, Playing, Recording, Seeking, Paused, Open.

//Antes de hacer funcionar el ejemplo, inicializa la propidedad notify del TMediaPlayer1 a true


Código Delphi [-]
//Ejemplo ayuda delphi... ;)
const
  ModeStr: array[TMPModes] of string = ('Not ready', 'Stopped', 'Playing', 'Recording', 'Seeking', 'Paused', 'Open');
 
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
  with Sender as TMediaPlayer do
  begin
    Form1.Caption := ModeStr[Mode];
    { Note we must reset the Notify property to True }
    { so that we are notified the next time the }
    { mode changes }
    Notify := True;
  end;
end;

ajrudilla 12-05-2006 08:40:40

sigo sin entender esto.que debo poner para reproducir continuamente un sonido wav al accionar un boton TButton y parar desde otro boton desde un TButoon.Gracias

Acanol 12-05-2006 09:09:30

Nunca lo he hecho pero en poder le echo un vistazo,estoy un poco agobiao de curro ;).

ajrudilla 12-05-2006 09:38:59

Gracias por la ayuda y paciencia

Acanol 12-05-2006 17:27:35

Buenas, mira esto es lo que he sacado asi rapidamente ya que no puedo entrenerme mas, si no te sirve le vuelvo a echar un vistazo, pero intenta adaptarlo. El siguiente codigo reproduce un sonido, cuando se termina, lo vuelve a reproducir, esta el boton stop que para la reproducción. Cuando hagas el formulario e insertes el tmediaplayer, enlazale el sonido que quieres reproducir desde el principio, aunque te he puesto un commondialog para que puedas elegir el sonido que quieras, bueno echale un vistazo y me dices algo.

Código Delphi [-]
unit unit1;
interface
uses
 Windows, mmsystem, ExtCtrls, Dialogs, StdCtrls, ComCtrls, Controls,
 MPlayer, Classes, Forms, SysUtils;
type
 TForm1 = class(TForm)
   MediaPlayer1: TMediaPlayer;
    btnStop: TButton;
    Button4: TButton;
    btnNext: TButton;
    Timer1: TTimer;
    btnOpenFile: TButton;
    btnPlay: TButton;
    OpenDialog1: TOpenDialog;
   procedure btnOpenFileClick(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure btnPlayClick(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure btnStopClick(Sender: TObject);
   procedure btnNextClick(Sender: TObject);
   procedure Button4Click(Sender: TObject);
    procedure MediaPlayer1Notify(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
VarTime, VarRem: String;
 SetNewPos: Boolean;
 trk: integer;
 min:extended;
 sec:integer;
 const
  ModeStr: array[TMPModes] of string = ('Not ready', 'Stopped', 'Playing', 'Recording', 'Seeking', 'Paused', 'Open');
implementation
{$R *.DFM}
procedure TForm1.btnOpenFileClick(Sender: TObject);
begin
   if OpenDialog1.Execute then begin
       MediaPlayer1.Close;
       MediaPlayer1.FileName := OpenDialog1.FileName;
       MediaPlayer1.Open;
   end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   MediaPlayer1.Close;
end;
procedure TForm1.btnPlayClick(Sender: TObject);
begin
MediaPlayer1.Open;
MediaPlayer1.Play;
Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   if MediaPlayer1.Mode = mpStopped then
     BEGIN
      mediaplayer1.Play;
     END;
      end;
procedure TForm1.FormCreate(Sender: TObject);
begin
   SetNewPos := False;
end;
procedure TForm1.btnStopClick(Sender: TObject);
begin
   If MediaPlayer1.Mode <> mpStopped then
       MediaPlayer1.Stop;
end;

procedure TForm1.btnNextClick(Sender: TObject);
begin
   btnPlay.Click;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
   btnPlay.Click;
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
Begin
  with Sender as TMediaPlayer do
  begin
    Form1.Caption := ModeStr[Mode];
    Notify := True;
    end;
    if MediaPlayer1.Mode = mpStopped then
     BEGIN
      mediaplayer1.Play;
     END;

end;

end.

Acanol 29-05-2006 15:50:07

¿Sirve de algo el tiempo que he perdido en hacer el ejemplo?
 
Te sirvio de algo lo del tmedia player? haces una pregunta la gente te responde se molesta en dedicar un tiempo a tu pregunta, y tu no eres capaza de responder si te fue util?, creeme que me ha sentado como una patada en los huevos ;)

Lepe 29-05-2006 16:28:27

La experiencia en el foro me dice que: cuando se da un ejemplo como el tuyo Acanol, suele bastar para solucionar el problema.

Y si no ha servido, suele dar vergüenza admitirlo, porque realmente no se planteó bien el problema.

Como suele decirse "es de bien nacido, ser agradecido", pero muchas veces, se le echa la culpa a que "tenía muy poco tiempo", "estaba agobiado" y no se agradece, por escrito, el esfuerzo realizado, aunque estoy seguro que al pegar tu ejemplo y pulsar el botón de compilar, ajrudilla respiró hondo con satisfacción y agradeció tu esfuerzo.

Acanol, sientete orgulloso, ya que este hilo lo "has solucionado" tú solo, de hecho no ha intervenido nadie más ;).

Por lo dicho... no te lo tomes a mal hombre :cool:

Acanol 29-05-2006 21:34:23

sorry me sulfure XD
 
Muchas gracias lepe, la verdad no iva tan solo por el si no por varios post que he leido por ahi (que no he contestado yo) que la gente da respuesta intentando solucionar el problema y sin embargo no responde si es util o no para seguir intentando ayudar. Bueno pues nada espero que le siriviese. Un abrazo y hasta otra.


La franja horaria es GMT +2. Ahora son las 05:28:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi