media player şarkı atlama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

media player şarkı atlama

Mesaj gönderen DotCom »

formun üzerinde bir listbox var , şarkılar bunun içerisinde listeli diyelimki 10 adet şarkı var. birinci şarkıya çift tıklıyosunuz ve mediaplayer devreye giriyor.

fakat birinci şarkı bitince ; ikinci şarkıya geçmiyor.

Forumunda aratmama , baya bi kitap karıştırmama , internette araştırmama ragmen bulamadım.

sadece notify event ında şarkının bittiğinin anlaşıla bildiği yazıyor ama oda olmadı..

kolay gelsin.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

ilk önce Forumumuza bir MediaPlayer birtane FileListBox bir adette Timer bileşeni koyalım.

Sonra integer tipinde bir global değişken tanımlayalım Adı bak olsun.

Kod: Tümünü seç

var
  Bak:Integer;
Forum'un OnShow eventine ilk şarkımızı atayacaz ve gerekli ayarlamamızı yapacaz.

Kod: Tümünü seç

procedure TForm1.FormShow(Sender: TObject);
begin
    Bak:=0;
    FileListBox1.Directory := 'C:\ZilCal\ziltipi';
    FileListBox1.SetFocus;
    FileListBox1.Selected[Bak] := True;
    MediaPlayer1.FileName := FileListBox1.Items[Bak];
    MediaPlayer1.Open;
    MediaPlayer1.Play;

end;
Ardından Timer bileşenimizde şarkılarımızı sırayla döndürecez.

Kod: Tümünü seç

procedure TForm1.Timer1Timer(Sender: TObject);

begin
        if Bak <> FileListBox1.Count-1 Then
        Begin
            if mediaPlayer1.Position = Mediaplayer1.Length Then //Çalan Parçanın bitip bitmediğini kontrol ediyoruz
            Begin
                Bak := Bak + 1;
                FileListBox1.SetFocus;
                FileListBox1.Selected[Bak] := True;
                MediaPlayer1.AutoOpen := True;
                MediaPlayer1.FileName := FileListBox1.Items[Bak];
                MediaPlayer1.Open;
                MediaPlayer1.Play;
            End;
        End
        Else //Liste sonunda tekrar başa dönmek için else kısmı.
        Begin
            bak := 0;
            FileListBox1.SetFocus;
            FileListBox1.Selected[Bak] := True;
            MediaPlayer1.FileName := FileListBox1.Items[Bak];
            MediaPlayer1.Open;
            MediaPlayer1.Play;
        End;
end;

Kolay Gelsin...

İyi Geceler.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

ilginç bir hata

Mesaj gönderen baloglurecep »

merhabalar
bir okul zili programı yaptım arkadaşlar...Gayet de güzel oldu öğrenci çıkışı ile birlikte bir edite tenefüs yazdırıyorum ve o editn de changecinde
tenefüste çalınacak parçaları çaldırıyorum. Deneme aşamalarında çabuk bitmesi içn hep midi dosyları ile denemeler yaptım. Sorun olmadı parça bitince diğer parçaya geçti. Çok ilginçtirki Hüso Beyin vermiş olduğu yöntemde mp3 dosyları çalındığında parça bitince diğer parçaya atlamıyor.
Ben buna bir anlam veramedim. Bilgisi olan arkadaşalr ve Hüso Bey bana yardımcı olurmusunuz?
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

hocam daha önce ben bunu yapmıştım bir program için forumda var birde şu şekilde var elimde mevcut olan ;

Kod: Tümünü seç

mediaplayer'ın Notify olayına//////////

Begin
With sender As TMediaplayer do
begin
if mode=mpstopped then
begin
filename:=//////şarkı yolu////
play;
end;
notify:=true;
end;
end;
Kolay gelsin .......
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
mero
Üye
Mesajlar: 109
Kayıt: 04 Mar 2005 04:54

Mesaj gönderen mero »

Bende daha geçen hafta okullar için bir zil programı yaptım. Tenefüs aralarında da mp3 çalışyor.
Parçanın bitip bitmediğinide mediaplayerin notify eventından anlıyorum. Test ettiğim en sağlıklı yöntem bu.

Kod: Tümünü seç

procedure TAnaForm.MediaPlayer1Notify(Sender: TObject);
begin

if MediaPlayer1.Position=MediaPlayer1.Length  then
 begin

  if  ZilPlaying then
   MediaPlayer1.Play
  else
   begin
    if Mp3Playing then
      Mp3play(0)
    else
      seskontrol(0);
   end;

 end;

end;
Cevapla