.wav a .mp3

Necesito poder desde visual basic convertir un archivo .wav en un archivo.mp3. Lamentablemente no me sirve otra herramienta que no sea VB, aunque podría servir si puede manejarse completamente desde VB. Desde ya, muchas senquius.

1 respuesta

Respuesta
1
http://lame.sourceforge.net/download/download.html
Está el código del compresor LAME, sacado por ingeniería inversa, con media docena de resquicios legales y alojado en Croacia.
Pero son 800k de C
Los documentos oficiales te los vende el ISO por una pasta gansa
Aquí tienes una introducción.
http://www.mp3-tech.org/
Aqui tienes ejemplos de Fuentes...
http://www.mp3-tech.org/programmer/encoding.html
Suerte
(Gracias a la colaboración de Acererak42)
PD. Creo que es mejor opción que busques un OCX que haga eso y no te pongas a programar otra vez la "Rueda".
He seguido tu consejo de buscar una ocx que haga lo que quiero, pero me he encontrado con que lo que hacen es grabar en formato .wav de menor calidad y le cambian la extensión a .mp3. Lo que necesito es que no disminuya tanto la calidad. ¿Podrías recomendarme alguna ocx o un sitio donde descargar buenos productos? Muchas gracias.
Veamos, Si no quieres pagar y quieres lo mejor de lo mejor, descárgate el LAME de la página de http://www.mp3-tech.org/software/encoders/lamewin32.exe
Ahí tendrás la DLL que usan para comprimir (No lo he hecho nunca con la DLL de LAME). Luego declárate las funciones (después de registrar la DLL con regsvr32.exe) mediante esta estructura de declaraciones :
Public Declare Function `[NOMBREDELAFUNCIONPUBLICADELADLL] Lib [LIBRERIA] ([PARAMETROS DE LA FUNCION])
As [valor que devuelve si no es void].
En la msdn tienes como pasar variables de C a VB.
Pero si puedes buscar la DLL comercial, aquí tienes ocx :
1.- La putada es que está en chino. Pero es un OCX que codifica. (Al menos eso dice)
http://download.pchome.net/multimedia/mp3/coder/334.html
2.- Aquí tienes MP3 encoders, pero parece que cobran por ellos ojealos de todos modos :
http://www.activexcontrol.com/mp3.htm
3.- Después de sopesar lo que escribiste, si no ves un OCX que te sirva, he pensado de que LAME (el gratuito y opensource de RAZOR) comprime en la linea de comandos.
En esta página te documentan de ellos :
http://www.dors.de/razorlame/index.php
Creo que es la mejor Opción aprender a usarlo desde el interprete de comandos de DOS y luego, repetir los comandos usando la función SHELL, o esta :
'APIS DE CARGA DE PROCESO
Public Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Public Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Const STILL_ACTIVE = &H103
Public Const PROCESS_QUERY_INFORMATION = &H400
Public Function ExecDosFile(ByVal PestrArchivo As String) As Double
' Funcion asincrona
'ExecDosFile = Shell(PestrArchivo, vbNormalFocus)
' Funcion sincrona
'Esperar a que un proceso termine,
'la ventana se mostrará minimizada sin foco
Dim hProcess As Long
Dim RetVal As Long
'captura el ID del proceso
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, _
Shell(PestrArchivo, vbMinimizedNoFocus))
Do
'Obtiene el estado del proceso
GetExitCodeProcess hProcess, RetVal
DoEvents
Sleep 100
Loop While RetVal = STILL_ACTIVE
Sleep 100
End Function
Si aun así no ves como hacerlo te contesto después de Semana Santa, (La tuya es la última pregunta que tengo, y me quiero ir toda la semana ;-) )
Suerte y un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas