void sound_set_playmode( int id_canal, int playmode )


Descripción:

Ajusta el estado de reproducción de un canal. Esto puede hacerse mientras se reproduce el sonido, por lo que puede reproducir un sonido con repetición (teniendo el comienzo y final del bucle ajustados correctamente), y entonces borrar la variable de repetición cuando quiera finalizar el sonido, lo que hará que éste llegue al final del bucle, continúe con la siguiente parte del sonido, y acabe de modo normal. El parámetro playmode es un campo de bits que contiene los siguientes valores:

Nota.: Para aplicar varios parámetros al esta función se haría de la siguiente manera:

 // Reproducción de un sonido invertido y en bucle
 sound_set_playmode( id_canal, PLAYMODE_LOOP | PLAYMODE_BACKWARD );


MAIN_PROGRAM_CDIV
PRIVATE
   int
    id_sonido,
    canal,
    posicion;

BEGIN_PROGRAM

 set_gfx(GFX_AUTODETECT_WINDOWED);

 set_mode(m320x200);

 write(0, 10, 10, 0, "[ESPACIO] invertir sonido");
 write(0, 10, 20, 0, "[ ENTER ] reproducción normal sonido");
 write(0, 10, 40, 0, "Posición del Sonido: ");
 write_int(0, 180, 40, 0, &posicion);

 id_sonido = load_wav("../help.wav", 1);
 canal = sound(id_sonido, 127, 127);

 LOOP{
        if (scan_code == _space) // Invierte el sonido
         sound_set_playmode( canal, PLAYMODE_LOOP | PLAYMODE_BACKWARD );   
        
        if (scan_code == _enter) // Reproducción normal
         sound_set_playmode( canal, PLAYMODE_LOOP | PLAYMODE_FORWARD );
        
        posicion = sound_get_position(canal);
        
        FRAME;
 }

END_PROGRAM

En el ejemplo se pone una pantalla de fondo y un texto explicativo, y se carga un sonido con la función load_sound() / load_wav / load_vod(); ésta devuelve el identificador del sonido, que se  guarda en la variable id_sonido.

En el bucle principal, a cada pulsación de BARRA ESPACIADORA se invierte el sonido y si se pulsa ENTER el sonido vuelve a reproducirse normalmente.

Veremos continuamente la posición del sonido gracias a la función sound_get_position() que actualiza la variable posicion


Ver: load_wav() - sound() - sound_get_position() - change_sound() - stop_sound()