Delphi 6 - wave aufnehmen über tmediaplayer

NIC140903

Erfahrenes Mitglied
also folgendes: ich habe auf einer form 2 mediaplayer-module
der erste spielt die ganze zeit verschiedene wavs hintereinander, soweit funktioniert alles

nun möchte ich aber, dass der zweite der mediaplayer auf der form, den ganzen kram aufzeichnet und als wave speichert...

wie krieg ich das ding da jetzt zu? - ich hab das schon mit mediaplayer1.startrecording und sonstigen sachen ausprobiert (filename hatte ich eingestellt)

wär cool wenn mir wer helfen könnte, danke schon ma im vorraus

NIC140903
 
ein paar auszüge aus der online-hilfe:
TMediaPlayer.Save

Save speichert das aktuelle geladene Medium in der Datei, die in der Eigenschaft FileName angegeben ist.

procedure Save;

Beschreibung

Save wird für Geräte ignoriert, deren Medien nicht in Dateien gespeichert sind (dies ist z.B. bei Bildplatten der Fall).

Nach Beendigung der Ausführung speichert Save in der Eigenschaft Error einen numerischen Fehlercode. Die entsprechende Fehlermeldung wird in der Eigenschaft ErrorMessage abgelegt.

Die Eigenschaft Wait bestimmt, ob die Steuerung an die Anwendung zurückgegeben wird, bevor die Methode Save vollständig ausgeführt ist. Die Eigenschaft Notify gibt an, ob Save ein OnNotify-Ereignis erzeugt.

TMediaPlayer.StartRecording

Die Methode StartRecording beginnt an der aktuellen Position oder der in StartPos angegebenen Position mit der Aufzeichnung.

procedure StartRecording;

Beschreibung

Der Aufruf von StartRecording erfolgt, wenn zur Laufzeit auf die Schaltfläche Record des Media-Players geklickt wird.

Nach Beendigung der Ausführung speichert StartRecording in der Eigenschaft Error einen numerischen Fehlercode. Die entsprechende Fehlermeldung wird in der Eigenschaft ErrorMessage abgelegt.

Die Eigenschaft Wait bestimmt, ob die Steuerung an die Anwendung zurückgegeben wird, bevor die Methode StartRecording vollständig ausgeführt ist. Die Eigenschaft Notify gibt an, ob StartRecording ein OnNotify-Ereignis erzeugt.

Wenn die Ausführung der Methode StartRecording abgeschlossen ist, hat die Eigenschaft Notify standardmäßig den Wert True und die Eigenschaft Wait den Wert False. Wurden diese Eigenschaften aber vor dem Aufruf von StartRecording auf einen bestimmten Wert gesetzt, wird dieser beibehalten.

TMediaPlayer.StartPos

Die Eigenschaft StartPos gibt die Position im aktuell geladenen Medium an, an der die Wiedergabe bzw. die Aufzeichung beginnen soll.

property StartPos: Longint;

Beschreibung

Die Angabe von StartPos erfolgt im aktuellen Zeitformat, das in der Eigenschaft TimeFormat festgelegt ist.

Die Eigenschaft StartPos wirkt sich nur auf die Play- oder StartRecording-Methode aus, die direkt nach dem Setzen von StartPos aufgerufen wird. Soll die Eigenschaft StartPos auch für weitere Aufrufe von Play oder StartRecording gelten, muß sie nach jedem Aufruf neu gesetzt werden.

StartPos wirkt sich erst dann auf die (in der Eigenschaft Position angegebene) aktuelle Position des Mediums aus, wenn der nächste Aufruf von Play bzw. StartRecording erfolgt.

von zeit zu zeit sollte man einfach mal auf f1 drücken. ;)
 
Original geschrieben von asphyxia
ein paar auszüge aus der online-hilfe:






von zeit zu zeit sollte man einfach mal auf f1 drücken. ;)

ja, ich kenn die befehle ja...ich hab das auch so gemacht wie das in der hilfe beschrieben is, aber der lässt sich nich dazu bewegen die datei zu speichern, von daher dachte ich, dass jemand vielleicht nen stück beispiel-code oder so hat, von einem proggy, das definitiv funktioniert...
also die bedienung der hilfe beherrsche ich schon einigermaßen ;)
 
wo tritt der fehler eigentlich genau auf? kannst du die datei nicht speichern, oder gar nicht erst aufnehmen?

poste ggf. halt mal etwas code und markier die zeilen, die nicht das tun, was sie sollen.
 
ich weiß ehrlich gesagt nich wo der fehler genau liegt, die datei, die das proggy speichern soll, is hinterher einfach nich vorhanden

mit diesem stück code starte ich die aufnahme
mediaplayer2.FileName:= pfad + 'file.wav';
mediaplayer2.open;
mediaplayer2.Wait:=false;
mediaplayer2.StartRecording;

und hiermit wird das nach ner gewissen zeit wieder beendet und sollte eigentlich auch gespeichert werden:

mediaplayer2.Stop;
mediaplayer2.FileName:=pfad + 'file.wav';
mediaplayer2.Save;
mediaplayer2.close;
 
scheinbar liegt das daran, dass der mediaplayer keine dateien überschreiben kann. liegt auf jeden fall nicht an deinem code... eher an microsoft. ;)

statt zu überschreiben, wird nur eine temporäre datei angelegt, die sofort wieder gelöscht wird, wenn dein programm sie nicht mehr benötigt. oder irgendwie so. :rolleyes:
du kannst die veränderte datei ja mal unter einem anderen dateinamen speichern und später umbenennen. was anderes fällt mir im moment auch nicht ein.

also ungefähr so:
Code:
MediaPlayer2.FileName := pfad + 'file.wav'; 
MediaPlayer2.Open; 
MediaPlayer2.Wait := False; 
MediaPlayer2.StartRecording; 
MediaPlayer2.Stop; 
MediaPlayer2.FileName := pfad + 'file2.wav'; 
MediaPlayer2.Save; 
MediaPlayer2.Close;
 
Zuletzt bearbeitet:
is ne ganz gute idee, das hab ich aber auch schon ausprobiert, und es funzt auch nich...ich verstehs echt nich mehr, warum der so stresst...
 
Zurück