Entwickler-Ecke
Multimedia / Grafik - Wave Position festlegen
Matthias - Do 30.01.03 14:43
Titel: Wave Position festlegen
Hallo Leute,
ich gebe eine Wave-Dateien über die Kommandos WaveOutWrite u.s.w aus, und stell diese grsfisch dar. Während des Playback läuft ein Cursor mit und zeigt die aktuell gespielte Position an (mit WaveOutGetPosition realisert). Die Position des Cursors kann ich mit der Maus verschieben. Jetzt möchte ich erreichen, dass das Playback an der neuen Position weitergeht.
Ich suche also eine Möglichkeit die Position der Ausgabe festzulegen.
ciao
Matthias
tommie-lie - Do 30.01.03 19:10
Na, einfach die Bytezahl berechnen, im Stream entsprechend suchen und von da an weiterlesen. Vorher natürlich Ausgabe stoppen, resetten, damit der aktuelle Block nicht weitergespielt wird (ich kenn' deine Block-Size nicht). Wenn du es Sekunden/Frame-Weise machen willst, müsstest du aus der Align berechnen, welches Byte welchem Frame entspricht. Dafür müsstest du den Header abziehen, also die reinen Daten nehmen, und dann immer in 4-Byte-Schritten (16bit * 2 Kanäle (Stereo) - also immer eine Zahl im Datenbereich, die ganzzahlig durch 4 Teilbar ist, bei anderen Formaten natürlich entsprechend anders). Die 4 Byte entsprechen einem Frame. Wenn du's Sekundenweise machen willst, musst dann auch noch mit der Samplerate rechnen, denn 44.1k Samples sind eine Sekunde. Also alle 44100*4 Bytes ist eine neue Sekunde.
Matthias - Do 30.01.03 22:55
Hallo,
vielen Dank für Deine Antwort. Ich habe es eben umgesetzt und es funktioniert schon (bis auf Fehlerbehandlung u.s.w.). Der Rest ist schon klar, schließlich zeichne ich ja die Inhalt der Wave und dafür muß der Waveheader ausgewertet werden.
ciao
Matthias
tommie-lie - Fr 31.01.03 12:19
könntest du mir dann auch noch sagen, ob es bei dir am Anfang und am Ende auch einen kleinen Knackser gibt (ich glaube nur auf dem rechten Kanal), auch wenn die Header korrekt überpsrungen wurden? Oder funktioniert das Write perfekt? Wenn ja, könntest du mir dann vielleicht den Code deiner Header-Vorbereitung und des Schreibens und des anschließenden Header-Freigebens mal schicken (webmaster@tommie-lie.net)?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!