Sounds einlesen und rekonstruieren

  • Sounds einlesen und rekonstruieren

    Hallo Leute!
    Diesmal habe ich eine (glaub meiner erste) komplexe Technikfrage, von der ich leider noch fast keine Ahnung hab, da ich keine Anhaltspunkte habe und daher auch nicht weiss, wonach ich suchen könne... Was ich vorhabe ist eine Sounddatei (z.B. wav) mit dem GM einzulesen und dann den "Inhalt" zu kopieren. Danach sollte man diese Datei löschen können und diese dann trotzdem mittels dem vom GM kopierten Code wieder rekonstruiert werden! Mein eigentliches Problem ist, dass ich nicht weiss, wie solche Dateien aufgebaut sind, und daher auch nicht, wie ich das anstellen sollte... Wenn mir jemand erklären kann, wie das genau aufgebaut ist, bin ich sehr froh. Noch besser wäre allerdings, wenn mir jemand helfen könnte, der sowas schonmal mit dem Game Maker gemacht hat! Bitte aber nicht bloss Codes, sondern eben auch eine Erklärung, danke ;)
    Danke im Voraus!


    MfG flogy
  • Na ich denke mal so ne Datei ist binär aufgebaut, also musst du sie warscheinlich mit den Funktionen umgehen können:
    Aus der Hilfe:
    file_bin_open(fname,mod) Öffnet die Datei mit dem angegebenen Namen. Der Modus gibt an, was mit der Datei getan werden kann: 0 = lesen, 1 = schreiben, 2 = beides). Die Funktion gibt die ID zurück, welche für andere Funktionen benötigt wird. Du kannst mehrere Dateien auf einmal öffnen (maximal 32). Vergesse nicht sie zu schliessen wenn du mit ihnen fertig bist!
    file_bin_rewrite(fileid) Schreibt die Datei mit der angegebenen ID neu, d.h. löscht sie und beginnt am Anfang.
    file_bin_close(fileid) Schliesst die Datei mit der angegebenen ID.
    file_bin_size(fileid) Gibt die Dateigrösse (in Byte) der Datei mit der angegebenen ID wieder.
    file_bin_position(fileid) Gibt die aktuelle Position (in Bytes; 0 ist die erste Position) in der angegebenen Datei ID zurück.
    file_bin_seek(fileid,pos) Bewegt den Dateizeiger an die neue angegebene Position. Um etwas anzufügen, fahre den Dateizeiger auf den Wert der Dateigröße.
    file_bin_write_byte(fileid,byte) Schreibt ein binäres Byte in die Datei mit der ID fileid.
    file_bin_read_byte(fileid) Liest ein binäres Byte aus der Datei mit der ID fileid.

    Link: Dateien

    EDIT: Wie so eine Datei nun aufgebaut ist weis ich auch nicht :D
    Vielleicht hilft dir das: RIFF WAVE - Wikipedia

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von copyboy ()

  • Ja, Audiodateien sind binär aufgebaut (nach Wikipedia)! Danke, jetzt weiss ich schonmal, dass ich mich über Binärdateien informieren sollte ;)
    Ich habe da auch nachgelesen, dass es zwei Sorten von Dateien gibt: Text- und Binärdateien. Mit Textdateien sind auch Ini's etc gemeint oder? Heisst das nun, dass ich mit den binären Dateien wie mit den Textdateien umgehen kann, dafür einfach andere Codes benutzen muss? Oder muss ich da was ganz neues lernen? Hat zufällig jemand n gutes Tut (wenn möglich auf Deutsch)? Danke!


    MfG flogy

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von flogy ()

  • Wozu benötigst du denn , den Sound einzulesen und zu rekonstruiern und die Datei zu löschen? Da kannst du doch direkt den Sound eingelesen lassen, was macht das denn für einen Sinn?
    Oder möchtest du sowas wie ein Audio-Spektrum erstellen lassen? (siehe gängige Audio-Bearbeitungssoftware wie z.B. Audacity)...ich brauche noch ein paar Anhaltspunkte, um dir helfen zu können.
  • Ich möchte sozusagen die Datei in Strings zerlegen, während man die Datei nach dem Einlesen löschen könnte und sie danach anhand des gespeicherten Strings wiederherstellen kann. Also einlesen --> Datei löschen --> rekonstruieren! Bringt so zwar nichts, wenn ich die Datei lösche, aber ich sage das nur, damit ihr versteht, dass der GM wirklich die Datei wiederherstellen kann! Ich hoffe, das ist klar... Sonst einfach nochmal fragen! Danke!

    MfG flogy
  • Also falls ich dich richtig verstanden habe, müsste dir das angehängte Beispiel doch enorm helfen. Es öffnet die Datei, liest sie aus, speichert das ausgelesene in einem String, löscht die Datei und speichert den Inhalt der alten Datei in einer neuen Datei ab.
    Dateien
    • beispiel.zip

      (14,8 kB, 136 mal heruntergeladen, zuletzt: )
  • Also bei mir gibts es keine Komplikationen. Egal wie oft ich das Beispiel ausführe und die Datei rekonstruiere, es funktioniert immer wie beim ersten Mal.
    Die Sounddatei ist nach wie vor abspielbar.
    Was passiert denn genau bei dir?

    EDIT:
    Jetzt weiß ich was du meinst, habs grad mit ner anderen Datei probiert. Da klappt es komischerweise nicht, bzw der Sound ist abgehackt. Hm...Ich weiß ehrlich gesagt nicht worans liegt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Marv1 ()