Autor Tema: load_wav con archivos .ogg en Android  (Leído 1319 veces)

darío

  • Sr. Member
  • ****
  • Mensajes: 458
  • Karma: 48
load_wav con archivos .ogg en Android
« 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.)?
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 2004
  • Karma: 257
Re:load_wav con archivos .ogg en Android
« Respuesta #1 en: Junio 13, 2016, 02:15:42 am »

panreyes

  • Administrator
  • *****
  • Mensajes: 2235
  • Karma: 81
    • panreyes.com
Re:load_wav con archivos .ogg en Android
« Respuesta #2 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 :)

darío

  • Sr. Member
  • ****
  • Mensajes: 458
  • Karma: 48
Re:load_wav con archivos .ogg en Android
« Respuesta #3 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

Gracias en cualquier caso por vuestras respuestas
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

darío

  • Sr. Member
  • ****
  • Mensajes: 458
  • Karma: 48
Re:load_wav con archivos .ogg en Android
« Respuesta #4 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");
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12894
  • Karma: 377
Re:load_wav con archivos .ogg en Android
« Respuesta #5 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 :)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

darío

  • Sr. Member
  • ****
  • Mensajes: 458
  • Karma: 48
Re:load_wav con archivos .ogg en Android
« Respuesta #6 en: Junio 13, 2016, 11:58:06 am »
Es importante ser feliz!
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

darío

  • Sr. Member
  • ****
  • Mensajes: 458
  • Karma: 48
Re:load_wav con archivos .ogg en Android
« Respuesta #7 en: Junio 13, 2016, 12:11:26 pm »
Qué formatos soporta load_wav?
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

josebita

  • Administrator
  • *****
  • Mensajes: 4039
  • Karma: 257
    • BennuGD Mobile Worklog
Re:load_wav con archivos .ogg en Android
« Respuesta #8 en: Junio 13, 2016, 12:45:52 pm »
mod_sound (tanto en BennuGD como en PixTudio) usa Mix_LoadWAV_RW. 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.

darío

  • Sr. Member
  • ****
  • Mensajes: 458
  • Karma: 48
Re:load_wav con archivos .ogg en Android
« Respuesta #9 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!)
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6340
  • Karma: 162
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re:load_wav con archivos .ogg en Android
« Respuesta #10 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?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)