Seite 1 von 1

Record Wave And Play

Verfasst: 22.11.2006 12:18
von bobobo
RecordWaveAndPlay

folgendes geht per Umweg ..

Code: Alles auswählen

;pb4 - winXP tested 

Global td$ ,ms.l
td$=GetTemporaryDirectory() 

Procedure.s RecordWav() 
  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. 
  Debug "save capture "+Chr(34)+td$+"test.wav"+Chr(34) 
  mciSendString_("save capture "+Chr(34)+td$+"test.wav"+Chr(34),buffer$,128,0) 
EndProcedure 

;AufnahmeKanal einstellen per mixer 
RunProgram("sndvol32.exe","/record","",#PB_Program_Wait) 
;RunProgram("sndrec32.exe","/record","",#PB_Program_Wait) 



ms=5000 ;feste Länge 5000mSek 
MessageRequester("Info","Click OK to capture audio to buffer for "+Str(ms/1000)+" Sec",0) 

RecordWav() 
MessageRequester("Info","Done!",0) 

; 
;statt loadsound() ein selbstgehäkeltes loadsound, kann ja mal jemand 
;umstricken, so dass der direkt in der mciprozedur erstellte Bereich 'capture' 
;gecatcht wird 
; 
If ReadFile(0, td$+"test.wav") 
  length = Lof(0) 
  *MemoryID = AllocateMemory(length) 
  If *MemoryID 
    bytes = ReadData(0, *MemoryID, length) 
    Debug "Anzahl der gelesenen Bytes: " + Str(bytes) 
  EndIf 
  CloseFile(0) 
EndIf 
InitSound() 
Debug CatchSound(0,*Memoryid,length) 
PlaySound(0,0) 
Delay(ms);damit man auch was hört 
MessageRequester("wow","now you have "+Str(length)+"Bytes more crap&scrap in "+td$,0)

Verfasst: 15.03.2007 19:37
von Hoto
Funktioniert bei mir irgendwie nicht (PB4+XP), die wav Datei ist nur 1 KByte groß und ich kann nicht darauf zugreifen. Der Code gibt bei PlaySound() auch einen Error aus (#Sound object not initialized).

Verfasst: 15.03.2007 19:58
von ts-soft
Funktioniert Fehlerfrei, jedoch mit Mikrofon als Quelle kann es zu Fehlern
kommen, Wave als Quelle funktioniert sehr gut, hat die Simpson vom TV
gecaptured :mrgreen:

Verfasst: 15.03.2007 20:33
von bobobo
ömm .. ging hier und geht hier immer noch
auch mit Micro ..

da zuck ich mal mit der Schulter


check mal ob die grundsätzliche Aufnahme klappt .. dafür gibt es
das sndrec32.exe in windows\system32

Verfasst: 16.03.2007 15:51
von Hoto
Ja, das klappt definitiv, schon vorher benutzt gehabt und anschließend Deinen Code.

Verfasst: 16.03.2007 16:05
von ts-soft
Haste auch mal mit WAV statt Mikro probiert. Bei mir geht Mikro wegen des
aktiviertem Vorverstärkers nicht.

Verfasst: 16.03.2007 18:00
von Hoto
Mit wav hab ichs nicht probiert, das wäre auch sinnlos, weil ich Mikroaufnahmen brauche. Ich habs mit und ohne Vorverstärker versucht, ging bei beiden nicht.

Verfasst: 17.03.2007 11:04
von DarkSoul
die quali von der aufnahme haut mich aber irgendwie nicht vom hocker - alles so dumpf und schrill zugleich :cry: . Aber bei sndrec32 klingt es normal

Verfasst: 17.03.2007 15:53
von ts-soft
>> Aber bei sndrec32 klingt es normal
Komisch, es dürfte garkeinen Unterschied geben, beide benutzen MCI :freak:

Verfasst: 19.03.2007 12:53
von bobobo
hab oben die Aufnahme-bzw. Abspieldauer mal etwas
abhängiger voneinander gemacht.