Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Activex Mediaplayer sıralı çalma sorunu
#1
Dostlar selamlar saygılar.... Öğretmenim. Delphi7 ile yıllar önce yazdığım ve sonrasında bir iki güncelleme yaptığım okul zil programını ve donanımını Teknofest'e proje olarak katılmak istiyorum. Sorunsuz olmasına çabalıyorum. Tenefüs aralarında isteğe bağlı şarkı çaldırma kısmı eklmiştim. Activex bileşen kullanmadığım zamanda sorunsuz çalışan precedurüm activex bileşeninde işe yaramıyor. Sebebini de bir türlü çözemedim. Listboxta yüklü olan şarkı listesini sıra ile ya da karışık olarak tenefüs boyunca çalacak. Yalnız ilk şarkıyı çalıp diğerine geçince ilgili şarkıya konumlanıyor(listboxta ilgili satır renkleniyor) ancak play koduna yanıt vermiyor. Eski mediaplayer nesnesinde aynı procedurum gayet sorunsuz çalışıyordu. Ancak onda da player nesnesinin stop durumunu alamadığım için activex nesnesine geçtim. (Stop durumunda portu kontrol ederek amfiyi açıp kapatıyorum, telefonumdan internete bağlı olan cihaz üzerinden programa komut göndererek de istediğim zili çaldırabiliyorum bu yüzden önemli)

tenefüs adında bir procedur oluşturdum. 

procedure Tform1.TENEFUS;
VAR I:INTEGER;
begin

  IF DirectoryExists(Edit1.Text) THEN
     BEGIN

     IF bsSkinFileListBox1.Items.Count>0 THEN
       BEGIN
       IF bsSkinCheckRadioBox4.Checked THEN //SIRALI ÇAL
         BEGIN
         IF StrToInt(SON_MELODI.Caption)>=bsSkinFileListBox1.Items.Count-1 THEN
           SON_MELODI.Caption:='0'
         ELSE
         SON_MELODI.Caption:=INTTOSTR(STRTOINT(SON_MELODI.Caption)+1);
         Player1.controls.stop;
         bsSkinFileListBox1.ItemIndex:=STRTOINT(SON_MELODI.Caption);
         Player1.URL:=bsSkinDirectoryListBox1.Directory+'\'+bsSkinFileListBox1.Items[STRTOINT(SON_MELODI.Caption)];
         Player1.controls.play;
         END; //SIRALI ÇAL SON

       IF bsSkinCheckRadioBox5.Checked THEN //KARIŞIK ÇAL
         BEGIN
         IF bsSkinFileListBox1.Items.Count>1 THEN
           BEGIN
           Randomize;
            REPEAT
           I:=RANDOM(bsSkinFileListBox1.Items.Count);
           UNTIL I<>STRTOINT(SON_MELODI.Caption);
           END
         ELSE I:=0;
         Player1.controls.stop;
         SON_MELODI.Caption:=INTTOSTR(I);
         bsSkinFileListBox1.ItemIndex:=STRTOINT(SON_MELODI.Caption);
         Player1.URL:=bsSkinDirectoryListBox1.Directory+'\'+bsSkinFileListBox1.Items[I];
         Player1.controls.play;
         END;//KARIŞIK ÇAL SON
       END;
     END;
  end;

playerin playstatechange olayında da stop durumunu okuyarak 

if  (NewState = wmppsStopped ) then  begin
   TENEFUS;
   end;

proceru tekrar çalıştırıyorum. İlginçtir ki play yapmıyor. ilk şarkı çalıyor ikinci ve sonrası şarkılara ilerlemiyor. newstate ait tüm seçenekleri denedim yine olmadı. Sizce ikinci defa ve sonrasında diğer şarkılar  neden çalışmaz dostlar? Yorumlarınızı bekler kolaylıklar dilerim.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Button Renk sorunu CesuR 3 642 21-05-2026, Saat: 04:29
Son Yorum: emailx45
  Win 11 ve Delphi 7 Minimize sorunu. enigma 7 1.086 11-02-2026, Saat: 10:27
Son Yorum: RAD Coder
  Delphi SLL kullanım sorunu Bay_Y 12 2.194 22-12-2025, Saat: 18:11
Son Yorum: Bay_Y
  CxGrid Türkçe karakter sorunu mur93 1 533 12-11-2025, Saat: 09:22
Son Yorum: cinarbil
Exclamation Ftp gönderilen dosyada tr karakter sorunu forumcuali 7 3.822 01-05-2025, Saat: 02:26
Son Yorum: m_ekici



Konuyu Okuyanlar: 1 Ziyaretçi