Dos funciones en ASLIB

Hola!

He estado mirando los ejemplos de palib para ver como funciona esta libreria y tal. Pero hay dos funciones que no encuentro (en la reproduccion de archivos raw):

- Detener un determinado sonido
- Hacer que el sonido se repita continuamente

Alguien tiene alguna idea?.

Saludos!
creo que tienes que usar mp3, mira estas funciones:

esta para que se repita si pones true
AS_SetMP3Loop (u8 loop) set the mp3 loop mode (false = one shot, true = loop indefinitely)

y esta para pausar
AS_MP3Pause () pause an mp3

para raw parece que no se puede, que alguien que sepa mas del tema lo confirme
AS_SoundPlay y AS_SoundDefaultPlay devuelven un valor que corresponde al canal en el que se están reproduciendo.En caso de que no haya canales para reproducir el sonido se devuelve -1.
Para pararlos:
AS_SoundStop(u8 chan)
Creo que me pasare al lado del mp3, en gran parte porque los sonidos ocupan mucho menos. Mas espacio que me ahorro en la rom...

Como de costumbre tengo problemas ^^. He convertido los mp3 a 34 de bitrate, mono, 8 bit y con una frecuencia de muestreo (o al menos creo que eso era) de 11025.


Lo primero es meter los sonidos en la carpeta data e incluirlos en el proyecto:

#include "Boton.h"
#include "Impacto.h"



Inicio el modo aslib a 8 bit y tal:

AS_Init(AS_MODE_SURROUND | AS_MODE_16CH);
AS_SetDefaultSettings(AS_PCM_8BIT, 11025, AS_SURROUND);


Reproducimos el sonido:

AS_MP3StreamPlay("Boton.mp3");



Sin embargo a la hora de ponerlo en la ds no se oye abosolutamente nada... Alguna idea?.

Subo los sonidos por si fuera de eso:



Saludos!
¿¿Mp3 para los efectos de sonido??

Ni se te ocurra:
-Los mp3 cuestan lo suyo decodificarlos.
-ASlib solo puede reproducir un mp3 a la vez, asi que olvídate de música de fondo o simplemente de usar otros sonidos.

Si usar mp3 para música es algo delicado y hay que preocuparse de controlar el resto del programa para que no se pase y de problemas al decodificador, usar mp3 para sonidos es una bestialidad...

Lo ideal es xm, mod, it... para música, raw para sonidos. Usar mp3 para música se puede pasar, pero para sonidos...


PD: AS_MP3StreamPlay("Boton.mp3"); sirve si tienes un archivo llamado Boton.mp3 en fat, no en la rom... Usa AS_MP3DirectPlay(Boton,Boton_size);.

PD2: No lo hagas...
Ups... Fatal error! xDD

Volvi a los raws, probe reproducir el sonido con AS_SoundDefaultPlay. Me da error al compilar porque hay "argumentos" que no he puesto. Cual es la sintaxis correcta de esta funcion?.

Lo de la musica, creo que me podre apañar con raw (aunque ocupe mucho...). El problema es que aun no he resuelto lo de hacer que el sonido se repita continuamente...

Saludos y gracias!
int AS_SoundDefaultPlay(u8 *data, u32 size, u8 volume, u8 pan, u8 loop, u8 prio);
int canal = AS_SoundDefaultPlay(Sonido,Sonido_size, 127, 64, (true/false), 0);

Ahí tienes.

Igual te da algún warning porque faltan typecasts a lo que te he puesto, pero bueno, no hace daño a nadie y se soluciona con añadirlos...
6 respuestas