MP3 Player und TimeFormat



  • So nun hab ich es auch hinbekommen, dass mein MP3 Player die Position und die Länge anzeigt. Nur wie kann man diese komische INT Zahl in richtige Zeit umstellen? Das ist ein TimeFormat soweit ich verstanden hab. Wie kann ich den Minute:Sekunde anzeigen lassen?

    Im Momment hab ich nur folgendes als Anzeige:

    MediaPlayer1->TimeFormat = tfMSF;
    Label4->Caption = MediaPlayer1->Length;
    

    Aber da kommt nur ne Ellenlange Zahl raus 😞

    Hab hier mal einen Ansatz gefunden:
    http://www.tutorials.de/forum/borland-cbuilder-und-vcl/199893-c-builder.html

    Aber leider keine vernünftige Lösung 😞



  • Ein anderes TimeFormat, aber es sollte helfen. Steht übrigens in der Hilfe!!!

    int TheLength;
      // Set time format - note that some devices don’t support tfHMS
      MediaPlayer1->TimeFormat = tfHMS;
      // Store length of currently loaded media
      TheLength = MediaPlayer1->Length; 
      // display hours in label 1
      Label1->Caption = IntToStr(LOBYTE(LOWORD(TheLength)));
      // display minutes in label 2
      Label2->Caption = IntToStr(HIBYTE(LOWORD(TheLength)));
      // display the seconds in label 3
      Label3->Caption = IntToStr(LOBYTE(HIWORD(TheLength)));
    


  • Na soweit bin ich auch schon gekommen und nu?

    Steht wieder ne Lange Integer Zahl als resultat 🙂



  • Im Beispiel erfolgt eine Ausgabe in drei Labels. Insofern ergibt deine letzte Aussage nicht wirklich Sinn.



  • Jansen schrieb:

    Im Beispiel erfolgt eine Ausgabe in drei Labels. Insofern ergibt deine letzte Aussage nicht wirklich Sinn.

    Meinst du mit dieser Aussage macht es nun mehr Sinn?



  • Rostfrei[] schrieb:

    Ein anderes TimeFormat, aber es sollte helfen. Steht übrigens in der Hilfe!!!

    int TheLength;
      // Set time format - note that some devices don’t support tfHMS
      MediaPlayer1->TimeFormat = tfHMS;
      // Store length of currently loaded media
      TheLength = MediaPlayer1->Length; 
      // display hours in label 1
      Label1->Caption = IntToStr(LOBYTE(LOWORD(TheLength)));
      // display minutes in label 2
      Label2->Caption = IntToStr(HIBYTE(LOWORD(TheLength)));
      // display the seconds in label 3
      Label3->Caption = IntToStr(LOBYTE(HIWORD(TheLength)));
    

    So den Code hab ich nun benutzt.

    Hab die 3 Labels erstellt und da kommen Werte wie z.B. bei einer 1:27 Minuten MP3:

    Label 1-> 230
    Label 2-> 83
    Label 3-> 1

    Was kann ich den Damit anfangen?



  • Nein, weil Sinn kann man nicht machen. Er ist da oder ergibt sich ... oder auch nicht.

    Scheiß Anglizismen!

    *Klugscheißmodus wieder aus* 😉

    Du hast nicht eine lange Zahl, sondern 3 einzelne kurze. Die kannst Du nach belieben benutzen (z.B. die Stunden weglassen etc.)



  • OK.

    Ich brauch folgende Ausgabe wie oben ewähnt: 1:27 🙂

    Nicht sowas wie 220 , 83 etc... muß ich diese ausrechen in Sekunden etc?

    Schnall nichts mehr ... Was sagt mir den 220 , 83 etc 😞

    --- Moment hab ne Idee ---

    83 / 60 = 1,38 ~ 1,27???

    Also einfach noch ne /60 reinmachen oder? 🙂

    Ne pass leider auch nicht *grübel*



  • BCB-Hilfe schrieb:

    // Set time format - note that some devices don’t support tfHMS

    Bei MP3s (zumindest bei konstanter Bitrate) werden Length, Position etc. in Millisekunden interpretiert. Das könnte man z.B. so ausgeben:

    TTime MyTime = TTime() + float(MediaPlayer1->Length) / MSecsPerDay;
    Caption = MyTime.FormatString("hh:nn:ss");
    


  • Jup danke, genau das hab ich gesucht 🙂


Anmelden zum Antworten