Found a solution.
BLZPeekInt is in the ISL lib http://www.blitzbasic.com/Community/posts.php?topic=34301
------------------------------------------------------
BLZPeekInt is in the ISL lib http://www.blitzbasic.com/Community/posts.php?topic=34301
------------------------------------------------------
Graphics 800,600,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(1024) WaveHead = CreateBank(32) PokeInt WaveHead,00,BLZPeekInt(WavData+4) ; lpData PokeInt WaveHead,04,1024 ; dwBufferLength waveInPrepareHeader(PeekInt(DevHandle,0),WaveHead,32) ;SetBuffer BackBuffer() film=OpenMovie("c:\movie.avi") While Not KeyDown(1) Cls DrawMovie film,50,50 waveInAddBuffer(PeekInt(DevHandle,0),WaveHead,32) For I = 0 To 1023 Line I,PeekByte(WavData,I),I,0 Next Flip Wend CloseMovie film waveInUnprepareHeader(PeekInt(DevHandle,0),WaveHead,32) waveInReset(PeekInt(DevHandle,0)) waveInClose(PeekInt(DevHandle,0)) ;.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" ;