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.
Respuesta de athrarn
1
1
athrarn, - Sistemas Operativos : - MS-DOS, Windows 3
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.