| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Vie 18 Ene, 2008 12:48 pm Asunto: Ripear a mp3 |
|
|
Hola qué tal? pues mi intención es hacer un programa con el cual pueda ripear un CD de audio a mp3.
Mis dudas son como puedo leer el contenido del CD pista a pista?
Necesito un codificador a .mp3 o se puede hacer por código?
Gracias. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Vie 18 Ene, 2008 2:22 pm Asunto: |
|
|
Muchas gracias Tor por tu aporte. Pero me vendría de perlas un trocito de código de ejemplo en c++ builder. Utilizo la versión 6 enterprise. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Sab 19 Ene, 2008 11:19 am Asunto: |
|
|
Hola,
No se si con la libreria FMOD, se podria hacer lo que deseas, mira ver
http://www.fmod.org
Un saludo. |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Sab 19 Ene, 2008 1:16 pm Asunto: |
|
|
Otra vez gracias kalux por tu aporte pero no consigo hacerlo funcionar en mi BCB6. He probado con múltiples includes, he incluido los directorios de instalación de la librería pero nada no lo consigo. Si alguien me pudiera dar un ejemplo de como escribir el código le estaría muy agradecido, ha y que no se le olvide explicarlo ya que todos necesitamos aprender. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Sab 19 Ene, 2008 8:40 pm Asunto: |
|
|
Hola Tugui,
Asi por encima:
-En el proyecto debes incluir: "fmodex_bc.lib"
-En el .h:
| Código: |
#include "fmod.h"
#include "fmod_errors.h"
|
Vamos a necesitar:
| Código: |
FMOD_SYSTEM *system;
FMOD_SOUND *sound1;//, *sound2, *sound3;
FMOD_CHANNEL *channel;// = 0;
FMOD_RESULT result;
int key;
unsigned int version;
void __fastcall ERRCHECK(FMOD_RESULT result);
|
| Código: |
result = FMOD_System_Create(&system);
ERRCHECK(result);
result = FMOD_System_Init(system, 32, FMOD_INIT_NORMAL, NULL);
ERRCHECK(result);
result = FMOD_System_CreateSound(system, "mp3.mp3", FMOD_SOFTWARE, 0, &sound1);
ERRCHECK(result);
result = FMOD_Sound_SetMode(sound1, FMOD_LOOP_OFF);
ERRCHECK(result);
result = FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, sound1, 0, &channel);
ERRCHECK(result);
|
| Código: |
void __fastcall TForm1::ERRCHECK(FMOD_RESULT result)
{
if (result != FMOD_OK)
{
FMOD_ErrorString(result));
ShowMessage("FMOD error! :"+AnsiString(result)+AnsiString(FMOD_ErrorString(result)));
exit(-1);
}
}
|
Finalizando con:
| Código: |
result = FMOD_Sound_Release(sound1);
ERRCHECK(result);
result = FMOD_System_Close(system);
ERRCHECK(result);
result = FMOD_System_Release(system);
ERRCHECK(result);
|
Importante que no se te olvide añadir donde se ejecute: "fmodex.dll" y por supuesto el fichero mp3.
Este es un ejemplo para hacer sonar un mp3. Mirate en la ayuda, para el tema de los cda y las salidas para mp3.
Pero como te he dicho antes: No se con seguridad si se puede hacer lo que quieres... supongo que si.
Un saludo. |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Dom 20 Ene, 2008 11:46 am Asunto: |
|
|
Muchísimas gracias kalux por perder tu tiempo conmigo. Bueno... vayamos por partes:
1º: He añadido al proyecto pulsando el botón con una carpeta abierta y un símbolo + de color fosfi el archivo "fmodex_bc.lib" y la cosa a ido bien.
2º: En el archivo de cabecera .h además de tus dos includes he tenido que añadir un tercero ("fmod.hpp"), ya que según parece la h sola es para lenguaje C mientras que si pones hpp es para lenguaje C++, y así no me ha dado herrores.
3º: Se que al principio de tu respuesta especificas "... en el .h:" y luego pones todo el código. Pero también me da errores.
4º: Finalmente lo he puesto de la siguiente manera:
En el archivo .h he puesto:
| Código: |
#include "fmod.h"
#include "fmod_errors.h"
#include "fmod.hpp"
|
Y en la parte public:
| Código: |
FMOD_SYSTEM *system;
FMOD_SOUND *sound1;//, *sound2, *sound3;
FMOD_CHANNEL *channel;// = 0;
FMOD_RESULT result;
int key;
unsigned int version;
void __fastcall ERRCHECK(FMOD_RESULT result);
|
Ahora cambiamos y pasamos al archivo .cpp de mi proyecto al cual he tenido que añadir el siguiente include:
para que me reconociera la función printf.
Luego en el constructor del formulario principal he puesto es siguiente código:
| Código: |
result = FMOD_System_Create(&system);
ERRCHECK(result);
result = FMOD_System_Init(system, 32, FMOD_INIT_NORMAL, NULL);
ERRCHECK(result);
result = FMOD_System_CreateSound(system, "mp3.mp3", FMOD_SOFTWARE, 0, &sound1);
ERRCHECK(result);
result = FMOD_Sound_SetMode(sound1, FMOD_LOOP_OFF);
ERRCHECK(result);
result = FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, sound1, 0, &channel);
ERRCHECK(result);
result = FMOD_Sound_Release(sound1);
ERRCHECK(result);
result = FMOD_System_Close(system);
ERRCHECK(result);
result = FMOD_System_Release(system);
ERRCHECK(result);
|
Y luego como si fuese una función propia añadida al proyecto he puesto: | Código: |
void __fastcall TForm1::ERRCHECK(FMOD_RESULT result)
{
if (result != FMOD_OK){
FMOD_ErrorString(result);
ShowMessage("FMOD error! :"+AnsiString(result)+AnsiString(FMOD_ErrorString(result)));
exit(-1);
}
} |
Así con la combinación de teclas Alt + F9 no me da ni warnings ni errores pero cuando pulso únicamente F9 me saltan un montón de herrores debiendo hacer un reset al programa para salir.
Si alguien tiene alguna idea para solucionar estos problemas le estaría muy agradecido. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Dom 20 Ene, 2008 5:30 pm Asunto: |
|
|
Hola,
El codigo que te he puesto lo he probado con la version 2007 y win xp y no me da error.
Asegurate de haber puesto la dll "fmodex.dll" junto con el ejecutable.
La parte siguiente, colocala en el evento OnClose o similar para terminar.
| Código: |
result = FMOD_Sound_Release(sound1);
ERRCHECK(result);
result = FMOD_System_Close(system);
ERRCHECK(result);
result = FMOD_System_Release(system);
ERRCHECK(result);
|
Asegurate tamnien de tener el fichero mp3 donde se ejecuta. Ah y cambiale el nombre, ya que te he puesto uno cualquiera "mp3.mp3".
Si no te sale te puedo mandar el fichero de proyecto, pero como te digo esos son los pasos que he seguido.
Un saludo. |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Dom 20 Ene, 2008 6:16 pm Asunto: |
|
|
Bueno pues nada... sigo con errores después de hacer lo que me has dicho. Y yo no tengo la versión 2007 tengo la 6 Enterprise y la hago funcionar bajo winXP SP2. Así que creo que me voy a dar por vencido. De todas gracias por haberte molestado . _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Dom 20 Ene, 2008 6:53 pm Asunto: |
|
|
Tugui,
Dime tu email, y te mando el proyecto.
Tan solo deberas crear un proyecto nuevo y añadir el cpp, el h y el lib.
Compilar y a ver que pasa.
Un saludo. |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Dom 20 Ene, 2008 7:06 pm Asunto: |
|
|
Bueno ahí va:
cuervo@masbytes.com _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Lun 21 Ene, 2008 10:26 am Asunto: |
|
|
Hola kalux, decirte que he recibido tus dos correos y comprobado que el ejecutable que has creado funciona correctamente en mi máquina, pero al probar de hacelo yo en mi entorno no funcionan, me da errores del tipo file not found que los he solucionado pegando los archivos con extensión dll en el directorio system de windows (fmodex.dll, fmodexp.dll, fmodexL.dll) cosa que me parece muy extraña porque ya instalé la librería FMOD, eso sí, en un directorio diferente al de mi BCB. Bueno decirte que sigue sin funcionarme creo que optaré por formatear mi ordenador reinstalarlo todo y probaré de nuevo y ya os contaré amigos mios. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
max Lt

Registrado: 12 Mar 2005Mensajes: 89Ubicación: Argentina Prov B.A Mar del Plata
|
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Mar 22 Ene, 2008 1:04 pm Asunto: |
|
|
Bueno, recién formateado el ordenador y recién instalado mi BCB6 enterprise y recien instalado el FMOD me compila bien pero a la hora de ejecutarlo me sale un mensaje de error diciendo:
| Código: |
FMOD error! :59Error initializing output device.
|
Debido y mi poco inglés que controlo supongo que viene a decir algo parecido a un error ocurrido al intentar inicializar un dispositivo de salida, pero no se qué dispositivo es. Si alguien quiere seguir ayudándome . _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
|