Oggi vediamo come fare del suono sui dispositivi mobili (Android e iOS).
Facciamo un pulsante e mettiamoci questo codice:
on mouseUp
put (specialFolderPath("engine") & "/noise1.wav") into tPath
put "noise1" into tChannelName
put "now" into tType
mobilePlaySoundOnChannel tPath, tChannelName, tType
end mouseUp
Il nostro programma suonerà il file
noise1.wav.
Adesso facciamo altri pulsanti con altri suoni e uno con una musica di sottofondo, così vediamo come poter suonare più file contemporaneamente:
chiaramente dovremo cambiare il nome del file da suonare e il nome del canale da utilizzare. Ad esempio per la musica di sottofondo possiamo scrivere:
on mouseUp
put (specialFolderPath("engine") & "/background.wav") into tPath
put "background" into tChannelName
put "now" into tType
mobilePlaySoundOnChannel tPath, tChannelName, tType
end mouseUp
Se lo proviamo, vedremo che funziona tutto a meraviglia, perchè indicando un nome per un canale possiamo fare più suoni contemporaneamente. Ogni canale è come una voce, in modo che se mettiamo in fila su un canale tutta una serie di suoni, finchè non finisce un suono non partirà il successivo, mente le altre possono parlare.
Il caso tipico sono i videogiochi, dove alcuni personaggi fanno delle operazioni e relativi suoni in un certo ordine, mentre altri personaggi devono potersi sovrapporre o susseguire senza problemi.
Possiamo anche mettere in pausa, far proseguire o fermare del tutto un canale.
Ad esempio aggiungendo i seguenti pulsanti
e mettendo i seguenti codici:
pausa:
on mouseUp
mobilePausePlayingOnChannel "background"
end mouseUp
resume:
on mouseUp
mobileResumePlayingOnChannel "background"
end mouseUp
Mentre il pulsant della musica in sottofondo (
background) lo possoamo trasformare così:
on mouseUp
if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then
put (specialFolderPath("engine") & "/background.wav") into tPath
put "background" into tChannelName
put "now" into tType
mobilePlaySoundOnChannel tPath, tChannelName, tType
else
mobileStopPlayingOnChannel "background"
end if
end mouseUp
Se usiamo il comando mobilePlaySoundOnChannel, possiamo utilizzare le opzioni:
- now: per avviare immediatamente il suono
- next: per metterlo in code al canale scelto
- looping: per metterlo in ciclo continuo, quando finisce ricomincia.