Şarkı sonu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Şarkı sonu

Mesaj gönderen Lord_Ares »

Merhaba, sayın mrmarman örneğinden yola çıkarak mediaplayer ile listboxtaki şarkıları sırayla çaldırmak istedim. Timer da şarkının bitip bitmediğini bir türlü yakalayamadım. Aşağıdaki kodlamam nasıl olmalı. Forumdaki örneklerle , mrmarmanın örneği farklı olduğu için notfy kısmı bende yok. Nasıl kullanacağımı bilemedim. StrDurum değişkenini takip etmeyi denedim olmadı.

Kod: Tümünü seç

procedure TForm1.PlayerPlayStateChange (ASender: TObject; NewState: Integer);

begin
  strDurum := '.';
  case NewState of
  wmppsUndefined     : strDurum := 'Tanımsız...';
  wmppsStopped       : strDurum := 'Durdu';
  wmppsPaused        : strDurum := 'Pause Edildi...';
  wmppsPlaying       : strDurum := 'Çalınıyor...';
  wmppsScanForward   : strDurum := 'İleri sardırma';
  wmppsScanReverse   : strDurum := 'Geri sardırma';
  wmppsBuffering     : strDurum := 'Tamponlanıyor..';
  wmppsWaiting       : strDurum := 'Beklemede';
  wmppsMediaEnded    : strDurum := 'Şarkı Bitti';
  wmppsTransitioning : strDurum := 'Veri alış verişinde.';
  wmppsReady         : strDurum := 'Hazır';
  wmppsReconnecting  : strDurum := 'Tekrar bağlantı kuruluyor';
  wmppsLast          : strDurum := 'Sonda';
  end;
  Label1.Caption := 'Durum = ' + strDurum;
  end;

Kod: Tümünü seç

  procedure TForm1.Timer1Timer(Sender: TObject);
begin
   if playlist_calan_index <> Form1.Playlist_ListBox.Count-1 Then
        Begin
            if xMediaPlayer.playState = wmppsMediaEnded then
            begin
                    playlist_calan_index := playlist_calan_index + 1;
                    Playlist_ListBox.SetFocus;
                    Playlist_ListBox.Selected[playlist_calan_index] := True;
                    Timer1.Enabled:=false;
                    Playlist_CaL;
            End else begin
                      Timer1.Enabled:=false;
                      PlayerDurdur;
                     end;
        End;
End;
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Şarkı sonu

Mesaj gönderen Lord_Ares »

Bir türlü Şarkı bittiğini bulamadım.
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Şarkı sonu

Mesaj gönderen brs »

Şarkının süresini alabiliyor musunuz?
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Şarkı sonu

Mesaj gönderen brs »

Kod: Tümünü seç

procedure TForm2.XPlayerSureTimer(Sender: TObject);
begin
  with XPlayer do
  begin
    if Media <> Nil then
    begin
      TrackBar1.Max := Media.Duration;
      TrackBar1.Tag := 1;
      TrackBar1.Value := CurrentTime;
      TrackBar1.Tag := 0;
      TCDuration.Text := DurationFormat(Media.Duration div MediaTimeScale);
      TCPosition.Text := DurationFormat(Media.CurrentTime div MediaTimeScale);
      TCKalan.Text := TimeToStr(StrToTime(TCDuration.Text) - StrToTime(TCPosition.Text));
    end;
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Şarkı sonu

Mesaj gönderen Lord_Ares »

Yok dostum o şekilde ulaşamadım, aşağıdaki şekilde şuan için çalıştı ama ileride bakalım sorun çıkaracak mı ( pause gibi işlemlerde ). Nasıl kullanacağımı bilmediğim için tam bir günümü aldı öğrenmek :)))

Kod: Tümünü seç

 if strDurum='Durdu' then
     begin

       Playlist_ListBox.ItemIndex:=Playlist_ListBox.ItemIndex + 1;
       DosyaOynat(Playlist_ListBox);

     end ;

Cevapla