Ich habe einen kleinen Code gefunden, wie ich vom mikrofon aufnehmen kann:
Code: Alles auswählen
Procedure RecordWav(filename$,ms)
buffer$=Space(128) : DeleteFile_(filename$)
mciSendString_("open new type waveaudio alias capture",buffer$,128,0)
mciSendString_("set capture samplesperbuffer 8000 bytesperbuffer 8000",0,0,0)
mciSendString_("record capture",buffer$,128,0)
Sleep_(ms) ; Wait for specified capture time to end.
mciSendString_("save capture "+filename$,buffer$,128,0)
EndProcedure
;
MessageRequester("Info","Click OK to capture audio to c:\test.wav for 2 secs",0)
RecordWav("c:\test.wav",2000)
MessageRequester("Info","Done!",0)
Meine Frage ist nun: Wie kann ich die Ausgabe nicht in eine Datei, sondern z. B. in den Arbeitsspeicher (mit Peek und Poke oder so) umleiten, sodass ich das mit Purebasic über das Netzwerk versenden kann?
Iich habe schon folgendes probiert: In einer For-Schleife drei mal hintereinander sofort aufnehmen lassen und unter anderen namen abspeichern lassen (test1.wav, test2.wav, test3.wav) und nach der Aufnahme sofort abzuspielen; ebenfalls in einer For-Schleife. Mit InitMovie(), da mit InitSound() nicht geklappt hat. Das habe ich getan, weil ich dachte, wenn sich das flüssig und ruckelfrei anhört, dann kan man ja alle Dateien verschicken und beim Empfänger nahtlos hintereinander abspielen lassen.
Könnt ihr mir helfen? Kompression und so baue ich dann später noch ein oder frage euch (erst will ichs selbst probieren). mcht euch erst einmal keine Gedanken über mögliche Trafficauslastung. Ich will mein Vorhaben zwar für Internet optimieren (mind. ISDN, ansonsten mind. DSL 1000), aber wie gesagt, es geht mir erst darum, dass ich das Aufgenommene sofort versenden lassen kann.
Danke für eure Hilfe!