Procedura:
Public Sub RecordWave(TrackNum
As Integer, Filename As String)
'Tracknum: stop k
nahrání
'Filename: soubor pro uložení wavu
On
Local Error Resume Next
Dim i
As Long, RS As String, cb As Long, t#
RS =
Space$(128)
i =
mciSendString("stop cdaudio", RS, 128, cb)
i = mciSendString("close cdaudio", RS, 128, cb)
Kill filename
RS = Space$(128)
i = mciSendString("status cdaudio position track
" & TrackNum, RS, 128, cb)
i = mciSendString("open cdaudio", RS, 128, cb)
i = mciSendString("set cdaudio time format
milliseconds", RS, 128, cb)
i = mciSendString("play cdaudio", RS, 128, cb)
i = mciSendString("open new type waveaudio alias
capture", RS, 128, cb)
i = mciSendString("record capture", RS, 128, cb)
t# =
Timer + 1: Do Until Timer > t#: DoEvents: Loop
i =
mciSendString("save capture " & filename, RS, 128, cb)
i = mciSendString("stop cdaudio", RS, 128, cb)
i = mciSendString("close cdaudio", RS, 128, cb)
End Sub
Funkce pracuje následovně:
Nejprve zastaví veškerou činnost CD. Pak začne přehrávat
stopu a vytvoří nový wav soubor. Je třeba si uvědomit, že tato funkce
nahrává veškerý výstup, tudíž i mikrofon nebo midi. Po nahrání uloží
wav soubor a opět ukončí činnost CD.
|