La Web del Programador: Comunidad de Programadores
 
    Pregunta:  20362 - PASAR UN CD A WAV EN DIGITAL
Autor:  juan Francisco Garcia Garcia
Hola amigos, Por mas que busco información sobre como ripear un CD a WAV en digital solo encuentro algunos OCX que realizan esta funcion y que considero demasiado caros ¿hay alguna manera de hacerlo directamente con codigo?, ¿ejemplos? . Gracias de antemano.

  Respuesta:  Mario Campos
Creo que te mando la solución

Public Sub RecordWave(TrackNum As Integer, Filename As String)
' Tracknum: track to record
' Filename: file to save wave as

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)

Cualquier cosa comentame como te fue. Saludos. Mario

  Respuesta:  Mario Campos
Fijate si te anda y después comentámelo.

Public Sub RecordWave(TrackNum As Integer, Filename As String)
' Tracknum: track to record
' Filename: file to save wave as

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