TOC von einer Audio CD lesen unter WINDOWS

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • TOC von einer Audio CD lesen unter WINDOWS

    Hallo,

    ich steh derzeitig vor einem doofen Problem. Wir schreiben ne kleine Anwendung die eine FreeDB ID von einer Audio CD berechnet und die Informationen dann aus dem Internet holt. Allerdings muss ich um die ID zu berechnen erstmal das TOC von der CD bekommen.

    Ich surf jetzt schon seit Stunden rum aber finde nichts gescheites. Unter Windows vorallem soll es irgendwie extrem schwer sein das hinzubekommen, unser Prof hat es uns in Linux gezeigt und gemeint das er bei Windows auch nicht so schnell ne Lösung gefundene hat.

    Weis da einer zufällig über sowas irgendwie bescheid? Ich hab mich bisschen beschäftigt das man es irgendwie über MCI oder ASPI lesen kann wobei ASPI bevorzugen soll.
  • Danke für die Antwort! Ich habe inwischen ein kleines Programm gefunden der die Track länge und soweiter alles liest allerdings gelint es mir nciht die free DB ID zu berechnen. Das wird auch so wie du es sagtest darüber gemacht.

    Was aber mir jetzt inzwischen auffält das fast nur noch 2-3 Stellen (naja von 8 Stellen =/) unterschiedlich sind!

    Was ich jetzt alles zu verfügung habe ist Offset von den Tracks und die Länge in Sekunden.

    Hier mal paar Infos:

    cs.duke.edu/courses/cps006g/fall04/class/isis/freedb.pdf

    It is assumed that cdtoc[] is an array of data structures (records) containing
    the fields min, sec and frame, which are the minute, second and frame offsets
    (the starting location) of each track. This information is read from the TOC
    of the CD. There are actually tot_trks + 1 "active" elements in the array, the
    last one being the offset of the lead-out (also known as track 0xAA).


    Quellcode

    1. struct toc {
    2. int min;
    3. int sec;
    4. int frame;
    5. };
    6. struct toc cdtoc[100];


    Wenn ich das richtig verstehe muss ich ja dem cdtoc Array die Tracks reinhaun und aber für min, sec und frame jeweils die Startposition, richtig?

    Ich glaub das Problem ist einfach das Lead-In und Lead-Out =/. Am Ende wird ja die Gesamtzeit berechnet:

    Quellcode

    1. t = ((cdtoc[tot_trks].min * 60) + cdtoc[tot_trks].sec) -
    2. ((cdtoc[0].min * 60) + cdtoc[0].sec);


    Das Problem ist der erste Wert in cdtoc beginnt bei einer Position die ich nicht weiß. Kann man das Lead-in mit dem Offsets irgendwie berechnen?