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
  Java Script ile sayfayı kapatma sorunu MEK 0 169 15-10-2022, Saat: 00:04
Son Yorum: MEK
  Txt dosyadan Combobox bilgi yüklemede Türkçe karakter sorunu cinarbil 5 209 05-10-2022, Saat: 11:14
Son Yorum: cinarbil
  FastReport Chart Component Sorunu Frrst 4 291 19-09-2022, Saat: 16:49
Son Yorum: RAD Coder
  UDP Broadcast Sorunu Yasemin 6 538 12-09-2022, Saat: 19:21
Son Yorum: Yasemin
  program exe icon sorunu cvheneburi 8 569 12-09-2022, Saat: 11:38
Son Yorum: frmman



Konuyu Okuyanlar: 1 Ziyaretçi