Bueno pues he intentado cargar un MP3 con SDL_mixer y me ha sido imposible lograrlo, bueno en realidad no he podido tampoco con un OGG y me gustaría que me brindaran su ayuda.
En el siguiente código intento cargar un MP3:
Código
#include <ncurses.h> #include <SDL/SDL.h> #include <SDL/SDL_mixer.h> int main(){ initscr(); SDL_InitSubSystem(SDL_INIT_AUDIO); Mix_Music *music; music = Mix_LoadMUS("my.mp3"); Mix_PlayMusic(music, 0); printw("Prueba SDL_Mixer!"); refresh(); Mix_HaltMusic(); Mix_FreeMusic(music); Mix_CloseAudio(); return 0; }
Y esta es la salida que obtengo:
Código
Warning: incorrect audio format Excepcion de coma flotante
Cuando intento cargar un ogg obtengo una salida correcta, pero no obtengo sonido alguno. Llegué a pensar que era debido a la inclusión de las curses, pero también he intentado sin ellas con los mismos resultados.
En algunos foros recomendaban recompilar la librería SDL_mixer de la siguiente forma:
Código
./configure --prefix=/usr --enable-music-ogg --enable-music-libmikmod --enable-music-mp3-mad-gpl --disable-music-native-midi --enable-music-timidity-midi
Lo que hice sin resultado satisfactorio. Es por eso que me vi obligado a usar versiones viejisimas de la librería fmod porque de las últimas versiones la documentación es casi nula, pero además de la ausencia de documentación es casi imposible linkar en 64bits la versión 3.75 y por último es una libreria propietaria. Es poreso que quiero dejar de usarla lo más pronto posible.
No se si al código le falta algo o estoy haciendo algo mal, (talvez tenga que ver con especificar la salida del audio (ALSA)(¿?) pero siendo esto SDL lo dudo)
Bueno entonces, gracias por la ayuda que me puedan brindar, y por último aclarar, que no importa si me recomiendan otra librería para la carga y manipulación de archivos de audio con tal de que sea de código abierto y multiplataforma.
Saludos