Brauch ein paar Leute die mal den Player in meinem Programm testen



  • Hallo,

    unter folgender URL findet ihr ein Rar-Datei (testmymp3s.rar). http://www.thorsten-steinberg.de/testmymp3s.rar
    Entpackt diese und führt die Exe aus.
    Probiert dann mal ein paar Mp3 dateien abzuspielen, also eine auswählen und auf play drücken, eine andere aussuchen und wieder play. das ganze dann auch mal mit nem stopp dazwischen (pause ist noch nicht fertig).
    Bei mir läuft das einwandfrei.
    Bei einem Freund kommt eine Fehlermeldung in der Art: ""Die Anwendung hat einen Fehler verursacht... Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden".

    Wenn mir da auch einer Helfen könnte, wäre das ganz nett.

    Wenn ihr Fehler gefunden habt, schreibt sie bitte auf, mit Betriebssystem.
    Läuft wohl Vorläufig auf Win Systeme, ab welcher Version kann ich leider nicht sagen, da ich nur XP habe.

    Gruß
    Thorsten



  • SOURCE?



  • //HauptUnit
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    
    #pragma hdrstop
    
    #include "mymp3s_u2.h"
    #include "mymp3s_u1.h"
    #include "mymp3s_u3.h"
    #include "mymp3s_u4.h"
    #include "Mp3Class.h"
    #include "mymp3s_u5.h"
    
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    
    #pragma resource "*.dfm"
    TForm2 *Form2;
    //---------------------------------------------------------------------------
    __fastcall TForm2::TForm2(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //globale deklaration
    int gesamtDatein;     //bekommt den Count Wert der filelistbox der mp3s
    
    //---------------------------------------------------------------------------
    void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
    {
      Form1->Close();        
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm2::mnu_updateClick(TObject *Sender)
    {
      Form3->Show();        
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm2::driveChange(TObject *Sender)
    {
      dir->Drive=drive->Drive;  //wechselt das Laufwerk der DirListBox
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::dirChange(TObject *Sender)
    {
      filst_mp3->Directory=dir->Directory; //wechselt das Verzeichnis der FileListBox
    
      gesamtDatein=filst_mp3->Items->Count; //zählt die einträge in der FileListBox
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::filst_mp3DblClick(TObject *Sender)
    {
       int laenge;
    
       //sollte ein eintrag in FileName sein, wird gerade eine
       //Datei abgespielt. diese muss zuvor gestoppt und der mplayer geschlossen werden
       if(!(mpl_player->FileName == "") )
       {
         mpl_player->Stop();   //stopt den mplayer
         mpl_player->Close();  //und schließt ihn
    
       }
    
       //erst überprüfen ob überhaupt dateien zum abspielen
       //vorhanden sind. Sollte gesamtDatein ungleich 0 sein, wird keine
       //Datei versucht abzuspielen, da sonst eine Fehlermeldung kommen würde
       if(!(gesamtDatein == 0))
       {
         mpl_player->FileName = filst_mp3->FileName; //erhält den Pfad zur Datei die abgespielt werden soll
         mpl_player->Open();  //öffnet den mplayer
         mpl_player->Play();  //spielt die Datei ab
    
         mpl_player->TimeFormat = tfHMS;
    
         laenge=mpl_player->Length;
    
         Label1->Caption = IntToStr(LOBYTE(LOWORD(laenge))); //Minuten anzeige
         // Minuten in Label2 anzeigen
         Label2->Caption = IntToStr(HIBYTE(LOWORD(laenge)));
         // Sekunden in Label3 anzeigen
         Label3->Caption = IntToStr(LOBYTE(HIWORD(laenge)));
       }
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::mnu_packenClick(TObject *Sender)
    {
      tab_control->PageIndex= 1;           
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::filst_mp3Click(TObject *Sender)
    {
    
       Mp3 *ID3_Info = new Mp3;  //Erzeugt die Instanz ID3_Info
                                 //nun Kann mit der Klasse MP§Tag gearbeitet werden
    
       ID3_Info->ReadMp3Tag(filst_mp3->FileName.c_str()); //Liest den ID3-Tag aus der
                                                          //aus der markierten Datei der
                                                          //filst_mp3 bzw. gibt den Pfad an
    
       //Anzeigen der ID3 Tag Informationen
       lbl_interpret->Caption = ID3_Info->GetArtist();  //Interpret
       lbl_titel->Caption = ID3_Info->GetTitle();       //Titel
       lbl_album->Caption = ID3_Info->GetAlbum();       //Album
       lbl_jahr->Caption = ID3_Info->GetYear();         //Jahr
    
       if(ID3_Info->IsTag311() == true)
       {
        lbl_track->Caption = ID3_Info->GetTrack();       //Track
        //Label4->Caption="Ist 311";
       }
       else
       {
        //Label4->Caption="Kein 311";
       }
    
       lbl_kommentar->Caption = ID3_Info->GetComment(); //Kommentar
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::img_stopClick(TObject *Sender)
    {
      //Sollte der FileName leer sein, wird nicht gestoppt, da es
      //sonst zu einer Fehlermeldung kommen würde
      if(! ( mpl_player->FileName == "") )
      {
        mpl_player->Stop(); //Stopt den MediaPlayer (mpl_player)
      }
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::img_pauseClick(TObject *Sender)
    {
      mpl_player->Pause();   //macht eine Pause in die grade abgespielte datei
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::mnu_hilfeClick(TObject *Sender)
    {
      if(FileExists("Help\\MYMP3SV1.0.HLP"))
      {
        ShellExecute(Handle, "open", "Help\\MYMP3SV1.0.HLP",NULL,NULL,SW_SHOWDEFAULT);
        //hilfedatei öffnen auch mit F1
      }
      else
      {
        MessageDlg("Die Hilfedatei ist nicht vorhanden! \n Bitte schauen Sie auf der Produkthomepage vorbei!",mtWarning,TMsgDlgButtons() << mbOK, 0);
    
      }
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::mnu_aboutClick(TObject *Sender)
    {
      Form4->Show();    //zeigt Form4
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::mnu_updownClick(TObject *Sender)
    {
      Form5->Show();   //zeigt Form5
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::FormCreate(TObject *Sender)
    {
      gesamtDatein=filst_mp3->Items->Count; //zählt die einträge in der FileListBox
    }
    //---------------------------------------------------------------------------
    


  • Haste auch ne ZIP?





  • Dieser Thread wurde von Moderator/in junix aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum Projekte verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Mp3 *ID3_Info = new Mp3;
    

    Gibt es auch irgendwo ein delete dazu ?



  • nein, gibt es nicht, kann das ausschlag gebend sein, für einen Fehler alla "Der Vorgang "read" konnte nicht auf den Speicher ausgeführt werden?



  • Öhm, nun ja, das könnte eventuell vielleicht möglicherweise schon mal ein Grund sein.
    Was man mit new erzeugt sollte man auch wieder mit delete löschen.
    Des weiteren hast du da ja eine ganze Menge Pointer. Und Zuweisungen von einem Pointer zum anderen. Wenn du da nicht aufpasst, zerkloppt es dir eben irgendwann den Speicher.



  • Kann das sein das ddie stop und pause funktion genau das gleiche machen? 😮 😮 😮 😮 😮 😮 😮 😮


Anmelden zum Antworten