Mikrofon!!!
Übersicht

sven123Betreff: Mikrofon!!! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also mit der freundlichen Unterstützung der Blitz Community ist es mir jetzt gelungen einen kleinen chat zu Proggen.Jetzt hätte ich gerne gwusst ob es in BlitBasic die möglichkeit gibt ein Mikrofon oder Headset zu bedienen(Also im Programm) so dass ich in meinem chat so eine Sprachkomunikation à la Teamspeake!
thx euer Sven123 |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ersteinmal der Code um überhaupt das Micro anzusteuern:
Code: [AUSKLAPPEN] 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() While Not KeyDown(1) Cls waveInAddBuffer(PeekInt(DevHandle,0),WaveHead,32) For I = 0 To 511 Line I,PeekByte(WavData,I),I,0 Next Flip Wend waveInUnprepareHeader(PeekInt(DevHandle,0),WaveHead,32) waveInReset(PeekInt(DevHandle,0)) waveInClose(PeekInt(DevHandle,0)) Function AddressOf(Bank) Local Address = CreateBank(4),RetValue RtlMoveMemory(Address,Bank+4,4) RetValue = PeekInt(Address,0) FreeBank Address Return RetValue End Function Zitat: .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" waveInAddBuffer%(InputDeviceHandle,WaveHdrPointer*,WaveHdrStructSize) : "waveInAddBuffer" waveInPrepareHeader%(InputDeviceHandle,WaveHdrPointer*,WaveHdrStructSize) : "waveInPrepareHeader" waveInUnprepareHeader%(InputDeviceHandle,WaveHdrPointer*,WaveHdrStructSize) : "waveInUnprepareHeader" .lib "kernel32.dll" RtlMoveMemory%(Destination*,Source,Length) : "RtlMoveMemory" Die Daten kannst Du dann via Kompressions-DLL aus dem Codearchiv gepackt verschicken, und dann per BASS-DLL abspielen auf der anderen Seite. mfg olli |
||
vertex.dreamfall.at | GitHub |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Welche Daten? Schreibe mal bitte ein kleines tool, was sound bei einer Eingabe von "Aufnahme" anfängt zum aufnehmen und bei "Stopp" stoppt und das aufgenommene Abspielt... Bitte! | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group