MediaPlayer kullanımı hakkında

Başlatan z, 08 Temmuz 2012, 16:16:54

z

Delphi 6 ile yazdığım programda sesli mesajlar veriyorum. Ancak farklı ses dosyalarını peşpeşe seslendirmeyle ilgili sorunum var.

Dosyalarımız ses1.wav ve ses2.wav olsun.

ses1.wav seslendirildikten hemen sonra ses2.wav dosyasının başlatılmasını nasıl sağlarım?

Daha açık bir ifade ile; ses1.wav dosyasını seslendir dediğimde ses1.wav dosyasını başlatabiliyorum ancak bu seslendirme işinin bittiğini anlayamıyorum. 
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

Delphi'ye sayenizde yavaştan girmeye başladım gibi hocam  :)

bu yazıda arkadaş bir timer ile ses dosyasının uzunluğunu gösteren bir progress bar oluşturmuş
benzer mantıkla bittiği de anlaşılabilir, tabi daha kolay yolu varsa bilmiyorum
http://delphi.about.com/od/multimedia/l/aa112800c.htm

z

#2
ErsinErce sagolasın. Bir suru problemle boğuşurken bu sorunun çözümünü aramaktan kurtardın beni.

Verdiğin örnekten yararlanarak aşağıdaki kodu yazdım;

Mediaplayer1.Filename:='Ses1.wav';
Mediaplayer1.Open;
Mediaplayer1.Play;

while Mediaplayer1.Length<>Mediaplayer1.Position do;

Mediaplayer1.Filename:='Ses2.wav';
Mediaplayer1.Open;
Mediaplayer1.Play;

Program seslendirme sürerken ikinci sese başlayabilmek için ilk sesin bitmesini bekliyor ve bu esnada döngüde kalıyor. Bu uygulamamda sorun oluşturmuyor fakat bilgi olması açısından bekle işini eventa çevirmenin yolu varsa, kod verebileceklere şimdiden teşekkürler.

Görsel programlamada C kullanmayı isterdim. Delphiden memnun kalacağına garanti veririm.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

#3
onNotify olayını kullanabilirsiniz.

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
end;

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
var i:integer;
begin

      i:= integer(mediaplayer1.mode);
      showmessage(inttostr(i));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
      mediaplayer1.FileName := 'd:\wave\SoundTest.wav';
      mediaplayer1.Open;
      mediaplayer1.play;

end;

end.