Bennu Game Development

Foros en Español => Otros DIV-likes => PixTudio => Mensaje iniciado por: darío en Junio 12, 2016, 10:54:40 pm

Título: load_wav con archivos .ogg en Android
Publicado por: darío en Junio 12, 2016, 10:54:40 pm
Hay algún motivo que pueda explicar que no consiga reproducir sonidos en formato *.ogg con load_wav y play_wav en Android pero que sí que funcione en Windows y Linux? (quitando los típicos problemas de que la ruta esté bien especificada, etc.)?
Título: Re:load_wav con archivos .ogg en Android
Publicado por: l1nk3rn3l en Junio 13, 2016, 02:15:42 am
Prueba los ejemplos del pixtudio pack.. incluyen juegos con medios OGG

pixtudio
https://sourceforge.net/projects/coldev/files/bennugd2_Pixtudio/v1.3/


ejemplos
https://sourceforge.net/projects/coldev/files/bennugd2_Pixtudio/v1.2/examples%201.2.zip/download
Título: Re:load_wav con archivos .ogg en Android
Publicado por: panreyes en Junio 13, 2016, 09:16:53 am
Es gracioso, porque load_wav no debería cargar OGG xD

Abre una issue para que añada soporte para cargar OGG como sonido en Android :)
Título: Re:load_wav con archivos .ogg en Android
Publicado por: darío en Junio 13, 2016, 11:41:21 am
Voy a ver si encuentro algo en el pixtudio pack, por lo que dice panreyes es normal que no me funcione...

Ahí dejo el issue:
https://bitbucket.org/josebagar/pixtudio/issues/56/load_wav-play_wav-ogg-file-support-in (https://bitbucket.org/josebagar/pixtudio/issues/56/load_wav-play_wav-ogg-file-support-in)

Gracias en cualquier caso por vuestras respuestas
Título: Re:load_wav con archivos .ogg en Android
Publicado por: darío en Junio 13, 2016, 11:52:08 am
Así buscando entre los ejemplos no encontré nada que parezca cargar un archivo ogg con load_wav...

Código: [Seleccionar]
./examples/02_advance/borderpolice/borderpolice.prg:    wavs[i]=load_wav("wav/"+i+".wav");
./examples/02_advance/common-src/net_play.pr-:    unload_wav(wavs_ids[j]);
./examples/02_advance/common-src/net_play.pr-:    wavs_ids[j]=load_wav(resource_path);
./examples/02_advance/common-src/net_play.pr-:    unload_wav(wavs_ids[j]);
./examples/02_advance/common-src/net_play.pr-:Function net_load_wav(string mi_wav);
./examples/02_advance/common-src/net_play.pr-:    i=load_wav(mi_wav);
./examples/02_advance/common-src/net_play.pr-:Function net_unload_wav(int id_wav);
./examples/02_advance/common-src/net_play.pr-:    /*unload_wav(id_wav);
./examples/02_advance/common-src/net_play.pr-:    unload_wav(wavs_ids[id_wav]);
./examples/02_advance/pixfrogger2/client.prg:    wavs[i]=load_wav("wav/"+i+".wav");
./examples/02_advance/pixfrogger2/pixfrogger2.prg:    wavs[i]=load_wav("wav/"+i+".wav");
./examples/02_advance/bankpanic/bankpanic.prg:    sonidos[1]=load_wav("wav/1.wav");
./examples/02_advance/bankpanic/bankpanic.prg:    sonidos[2]=load_wav("wav/2.wav");
./examples/02_advance/bankpanic/bankpanic.prg:    sonidos[3]=load_wav("wav/3.wav");
./examples/02_advance/bankpanic/bankpanic.prg:    sonidos[4]=load_wav("wav/4.wav");
./examples/02_advance/inforgames/inforgames.prg:    wavs[i]=load_wav("wav/"+i+".wav");
./examples/02_advance/er3/er3.prg:    sonidos[i]=load_wav("wav/"+i+".wav");
./examples/02_advance/lionlive/lionlive.prg:    punch = net_load_wav ("wav/punch.wav");
./examples/02_advance/lionlive/lionlive.prg:    wintro = net_load_wav ("wav/intro.wav");
./examples/02_advance/lionlive/lionlive.prg:    wnoo = net_load_wav ("wav/noo.wav");
./examples/02_advance/lionlive/lionlive.prg:    splash = net_load_wav ("wav/splash.wav");
./examples/02_advance/lionlive/lionlive.prg:    just = net_load_wav ("wav/just.wav");
./examples/02_advance/lionlive/lionlive.prg:    nham = net_load_wav ("wav/nham.wav");
./examples/02_advance/lionlive/lionlive.prg:    groar = net_load_wav ("wav/groar.wav");
./examples/02_advance/lionlive/lionlive.prg:    hoo = net_load_wav ("wav/hoo.wav");
./examples/02_advance/SpiderPix/SpideyPix.prg:twiph=load_wav(".\Data\twiph.wav");
./examples/02_advance/SpiderPix/SpideyPix.prg:twiphb=load_wav(".\Data\twiphb.wav");
./examples/02_advance/pixbros/pixbros.prg:    wavs[i]=load_wav("wav/"+i+".wav");
./examples/02_advance/garnatron/garnatron.prg:    s_disparo=load_wav("wav/laser.wav"); frame;
./examples/02_advance/garnatron/garnatron.prg:    s_laser1=load_wav("wav/laser9.wav"); frame;
./examples/02_advance/garnatron/garnatron.prg:    s_laser2=load_wav("wav/onda01.wav"); frame;
./examples/02_advance/garnatron/garnatron.prg:    s_laser3=load_wav("wav/laser6.wav"); frame;
./examples/02_advance/garnatron/garnatron.prg:    s_misil=load_wav("wav/bomba5.wav"); frame;
./examples/02_advance/garnatron/garnatron.prg:    s_explosion=load_wav("wav/explos.wav"); frame;
./examples/02_advance/garnatron/garnatron.prg:    s_explosion_grande=load_wav("wav/explosg.wav"); frame;
./examples/02_advance/pixpang2.1/pixpang/pixpang.prg:    from flipando=0 to 16; s[flipando]=load_wav("wav/"+flipando+".wav"); end
./examples/02_advance/Mars2_source/logos.prg:    //sound1=load_wav("./snd/cut.wav");
./examples/02_advance/Mars2_source/logos.prg:    unload_wav(sound1);
./examples/02_advance/Mars2_source/logos.prg:    sound1=load_wav("./snd/pixel.wav");
./examples/02_advance/Mars2_source/logos.prg:    unload_wav(sound1);
./examples/02_advance/Mars2_source/scripts.prg:    snd_autopsia=load_wav("./snd/autopsia.wav");
./examples/02_advance/Mars2_source/scripts.prg:    sound1=load_wav("./snd/explosion_rocas.wav");
./examples/02_advance/Mars2_source/Mars2.prg:    snd_notifica=load_wav("./snd/notifica.wav");
./examples/02_advance/Mars2_source/Mars2.prg:    snd_puerta=load_wav("./snd/spacedoor.wav");
./examples/02_advance/Mars2_source/Mars2.prg:    snd_compuerta=load_wav("./snd/mechanical.wav");
./examples/02_advance/Mars2_source/Mars2.prg:    snd_key=load_wav("./snd/key.wav");
./examples/02_advance/Mars2_source/Mars2.prg:    snd_pasos=load_wav("./snd/pasos.wav");
./examples/02_advance/Mars2_source/Mars2.prg:    snd_martillo=load_wav("./snd/martillo.wav");
Título: Re:load_wav con archivos .ogg en Android
Publicado por: SplinterGU en Junio 13, 2016, 11:54:58 am
lo que veo bien es que hoy a panreyes todo le resulta gracioso! estas teniendo un buen dia parece! :D :)
Título: Re:load_wav con archivos .ogg en Android
Publicado por: darío en Junio 13, 2016, 11:58:06 am
Es importante ser feliz!
Título: Re:load_wav con archivos .ogg en Android
Publicado por: darío en Junio 13, 2016, 12:11:26 pm
Qué formatos soporta load_wav?
Título: Re:load_wav con archivos .ogg en Android
Publicado por: josebita en Junio 13, 2016, 12:45:52 pm
mod_sound (tanto en BennuGD como en PixTudio) usa Mix_LoadWAV_RW (https://www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer.html#SEC20). Su documentación dice:
Citar
Load src for use as a sample. This can load WAVE, AIFF, RIFF, OGG, and VOC formats
Tengo que ver por qué funciona distinto en "sobremesa" que en Android, pero será por la forma en que está compilado.
Título: Re:load_wav con archivos .ogg en Android
Publicado por: darío en Junio 13, 2016, 01:23:36 pm
Gracias,

Mi solución por ahora (por si a alguien le sirve) ha sido definir unas macros:

Código: [Seleccionar]
#ifndef OGG_AS_WAV
    #define sound_load(X)    load_wav(X + ".ogg")
#else
    #define sound_load(X)    load_wav(X + ".wav")
#endif

Y hacer unas modificationes a mi makefile (el cual es bastante rudimentario ya que no soy precisamente un experto).

Código: [Seleccionar]
android-dcb: $(SrcFiles)
    $(CC) -D OGG_AS_WAV=1 -o $(Out)android/main.dcb $(Main)

Código: [Seleccionar]
ogg2wav: ./wav/*.ogg
    -mkdir $(Out)android
    -mkdir $(Out)android/wav
    for i in ./wav/*.ogg; do \
        if [ -e "$$i" ]; then \
            file=`basename "$$i" ".ogg"`; \
            ffmpeg -y -i "$$i" "$(Out)android/wav/$$file.wav";  \
        fi \
    done;

Me alegro en cualquier caso de haber encontrado un uso a la opción -D! (gracias Splinter por haberla introducido!)
Título: Re:load_wav con archivos .ogg en Android
Publicado por: Drumpi en Junio 13, 2016, 03:40:27 pm
Yo recuerdo eso, que load_wav leía los mismos formatos que load_song. Quizás la diferencia es que load_song permitía hacer streaming y por eso sólo se permitía tener una canción en reproducción cada vez... y porque también admitía formatos tipo S3M, XM, MOD e IT que necesitaban varios canales de reproducción, en lugar de sólo uno como los play_wav.

O lo mismo me lo estoy inventando, vete tu a saber.

¿Por qué no ha empezado ya la conferencia de M$ en el E3?