Mit einem Mikro aufnehemn? Aber wie?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Geeecko

Betreff: Mit einem Mikro aufnehemn? Aber wie?

BeitragSa, Jan 28, 2006 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, wie neheme ich mit einem Mikro (BB3D) Sachen auf?
Ich habe auch schon gesucht! Hier der beweis:
https://www.blitzforum.de/view...f97f050982
---------
Ich will es gerade in BB3D umschreiben aber es klappt net Sad
---------
Global Path$ = "C:\Test.wav"
Global RS = CreateBank(128)
mciSendString("open new type waveaudio alias capture",RS,128,0)
mciSendString("record capture",RS,128,0)
Delay 5000
mciSendString("save capture " + Path$,RS,128,0)

Kann mir wer helfen?
mfg Gaia

Geeecko

Betreff: Userlib

BeitragSa, Jan 28, 2006 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier noch die UserliB:
.lib "winmm.dll"
mciSendString%(lpstrCommand$,lpstrReturnString%,uReturnLength%,hwndCallback%) : "mciSendStringA"
sndPlaySound%(lpszSoundName$,uFlags%) : "sndPlaySoundA"

Geeecko

Betreff: Habe es geschafft!

BeitragSa, Jan 28, 2006 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
So, meine Frage hat sich erledigt!
[syntax="bb"]
Graphics 512,256,32,2
SetBuffer FrontBuffer()

Const WAVE_INVALIDFORMAT = $000 ;invalid forma
Const WAVE_FORMAT_1M08 = $001 ;11.025 kHz,Mono, 8-bit
Const WAVE_FORMAT_1S08 = $002 ;11.025 kHz,Stereo, 8-bit
Const WAVE_FORMAT_1M16 = $004 ;11.025 kHz,Mono, 16-bit
Const WAVE_FORMAT_1S16 = $008 ;11.025 kHz,Stereo,16-bit
Const WAVE_FORMAT_2M08 = $010 ;22.05 kHz,Mono, 8-bit
Const WAVE_FORMAT_2S08 = $020 ;22.05 kHz,Stereo, 8-bit
Const WAVE_FORMAT_2M16 = $040 ;22.05 kHz,Mono, 16-bit
Const WAVE_FORMAT_2S16 = $080 ;22.05 kHz,Stereo,16-bit
Const WAVE_FORMAT_4M08 = $100 ;44.1 kHz,Mono, 8-bit
Const WAVE_FORMAT_4S08 = $200 ;44.1 kHz,Stereo, 8-bit
Const WAVE_FORMAT_4M16 = $400 ;44.1 kHz,Mono, 16-bit
Const WAVE_FORMAT_4S16 = $800 ;44.1 kHz,Stereo,16-bit
Const WAVE_FORMAT_PCM = $001
Const WHDR_DONE = $001
Const WHDR_PREPARED = $002
Const WHDR_BEGINLOOP = $004
Const WHDR_ENDLOOP = $008
Const WHDR_INQUEUE = $010

WaveFmt = CreateBank(18)
PokeShort WaveFmt,00,WAVE_FORMAT_PCM ; FormatTag
PokeShort WaveFmt,02,1 ; Channels
PokeInt WaveFmt,04,11025 ; SamplesPerSec
PokeInt WaveFmt,08,11025 ; AvgBytesPerSec | BlockAlign * SamplesPerSec
PokeShort WaveFmt,12,1 ; BlockAlign | (Channels * BitsPerSample) / 8
PokeShort WaveFmt,14,8 ; BitsPerSample
PokeShort WaveFmt,16,0 ; ExtraDataSize
;------------------------------------------------
WaveCaps = CreateBank(48)
Dim Device(waveInGetNumDevs())
For I = 0 To waveInGetNumDevs() - 1
waveInGetDevCaps(I,WaveCaps,48)
If PeekInt(WaveCaps,40) And WAVE_FORMAT_1M08 Then
For C = 8 To 39
Char = PeekByte(WaveCaps,C)
If Char = 0 Then Exit
ProductName$ = ProductName$ + Chr$(Char)
Next
Print "(" + Str$(Dev) + ") " + ProductName$
ProductName$ = ""
Dev = Dev + 1
Device(Dev) = I
EndIf
Next

If Dev = 0 Then
Print "Can't find a sounddevice!"
WaitKey : End
EndIf

Repeat
DevUsed = Input("Select a device(0-" + Str$(Dev - 1) + "): ")
Until DevUsed => 0 And DevUsed <= Dev - 1
DevUsed = Device(DevUsed)




DevHandle = CreateBank(4)
waveInOpen(DevHandle,DevUsed,WaveFmt,0,0,0)
If PeekInt(DevHandle,0) = 0 Then
Print "Can't open wavedevice!"
WaitKey : End
EndIf
waveInStart(PeekInt(DevHandle,0))

WavData = CreateBank(512)

WaveHead = CreateBank(32)
PokeInt WaveHead,00,AddressOf(WavData) ; lpData
PokeInt WaveHead,04,514 ; dwBufferLength
waveInPrepareHeader(PeekInt(DevHandle,0),WaveHead,32)
SetBuffer BackBuffer()
;------------------
Path$ = "test.wav"
mciSendString("open new type waveaudio alias capture",RS,128,0)


While Not KeyDown(1)
Cls

mciSendString("record capture",RS,128,0)

Flip
Wend



mciSendString("save capture " + Path$,RS,128,0)




Function AddressOf(Bank)
Local Address = CreateBank(4),RetValue
RtlMoveMemory(Address,Bank+4,4)
RetValue = PeekInt(Address,0)
FreeBank Address
Return RetValue
End Function
[/syntax]

Hier die beiden libs:
Code: [AUSKLAPPEN]

.lib "winmm.dll"
waveInGetDevCaps%(uDeviceID,WaveInCapsPointer*,WaveInCapsStructSize) : "waveInGetDevCapsA"
waveInOpen%(WaveDeviceInputHandle*,WhichDevice,WaveFormatExPointer*,CallBack,CallBackInstance,Flags) : "waveInOpen"
waveInGetNumDevs%() : "waveInGetNumDevs"
waveInClose%(WaveDeviceInputHandle) : "waveInClose"
waveInStart%(WaveDeviceInputHandle) : "waveInStart"
waveInReset%(WaveDeviceInputHandle) : "waveInReset"
waveInStop%(WaveDeviceInputHandle) : "waveInStop"
waveInSave%(WaveDeviceInputHandle) : "waveInSave"
waveInAddBuffer%(InputDeviceHandle,WaveHdrPointer*,WaveHdrStructSize) : "waveInAddBuffer"
waveInPrepareHeader%(InputDeviceHandle,WaveHdrPointer*,WaveHdrStructSize) : "waveInPrepareHeader"
waveInUnprepareHeader%(InputDeviceHandle,WaveHdrPointer*,WaveHdrStructSize) : "waveInUnprepareHeader"

.lib "kernel32.dll"
RtlMoveMemory%(Destination*,Source,Length) : "RtlMoveMemory"



Code: [AUSKLAPPEN]
 
.lib "winmm.dll"
mciSendString%(lpstrCommand$,lpstrReturnString%,uReturnLength%,hwndCallback%) : "mciSendStringA"
sndPlaySound%(lpszSoundName$,uFlags%) : "sndPlaySoundA"


muss noch ein bischen was ändern.
Man kann was in mikro sprechen, dann esc und dann kann man es anhören Very Happy[/list]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group