Jump to content
Nokioteca Forum

[mshell] Stoppare L'audio


lento
 Share

Recommended Posts

Salve a tutti belli e brutti... alter statene zitto

Vi sembrerò monotono ma ache stavolta faccio riferimento alla Miniguida di 'masmil1988'

http://www.nokioteca.net/home/forum/index....showtopic=38298

Voglio evidenziare come evitare di mandare in tilt mShell durante l'esecuzione del beep().

use audio;

audio.beep(1700,500)
audio.beep(1990,500)
audio.sleep(500)

Se si tenta di eseguire quanto qui riportato verrà generato un segnale di errore ErrInUse: File or device is in use

In genere in un programma non è così palese l'errore. Allora, letto quanto segue dalla 'Mini Guida'

Riprodurre un beep

audio.beep(frequenza,millisec);

while audio.busy() do end;

Con questa funzione possiamo far riprodurre al cellulare un determinato suono alla frequenza voluta, per il tempo che desideriamo. Tra parentesi dobbiamo scrivere due numeri: la frequenza del suono da riprodurre e il tempo (espresso in millisecondi) per il quale dovrà essere riprodotto il suono.

Dopo la funzione audio.beep() dobbiamo tenere il cellulare impegnato a fare qualcosa (anche a fare "niente", come nel codice di cui sopra), in questo caso con while audio.busy() do end;, che significa che il cellulare resta impegnato a fare "niente" intanto che l'audio è impegnato (la funzione audio.busy() ci dice se l'audio è o non è impegnato).

perciò il programma deve attendere che finisca la durata del suono prima di eseguirne un altro

use audio;

audio.beep(1700,500)
sleep(500) // <-- attende per il tempo del suono
audio.beep(1990,500)
audio.sleep(500)

oppure così:

use audio;

audio.beep(1700,500)
while audio.busy() do end;   //attende che termini
audio.beep(1990,500)
audio.sleep(500)

Ora nei programmi di giochi non si può tenere ferma una pallina che stà rimbalzando o un Mario Bros che deve saltare i barili

per aspettare che finisca il suono.

Per ovviare a questo problema esiste il seguente comando:

Stoppare il suono in esecuzione.

audio.stop();

Per fermare un file audio in riproduzione basta questa semplicissima funzione.

use audio;

audio.beep(1700,500)
//  qui passa del tempo impegnato dal programma
audio.stop() // se il programma arriva qui prima che audio.beep(1700.500) sia finito lo blocca
audio.beep(1990,500)
sleep(500)

Spero di esservi stato utile..

Modificato da lento
Link to comment
Condividi su altri siti

Salve a tutti belli e brutti... alter statene zitto

Vi sembrerò monotono .......................

Spero di esservi stato utile..

Come sempre.....sei stato utilissimo.......

Devo provare ad applicare il tutto sia su mario che sulla pallina.

Approposito volevo chiederti una cosa e faccio riferimento ai suoni .waw che hai allegato a Tank.....

Ho provato a mettere un suono di quelli in Mario.. e ad esempio quando salta se vi è allegato il suono .waw il gioco è come se si fermasse. E cioè, clicco sul tasto 3, mario salta, rimane sospeso, si sente il suono e poi riatterra, ma passano alcuni secondi.

Quindi mi chiedo come faccio ad inserire in mario oppure in ball un suono mp3 o waw senza fare in modo che il gioco rallenti spaentosamente ?????.....comprati na radio, accendila e gioca co i giochini..ma quante ne vuoi ???

Link to comment
Condividi su altri siti

l'avevo gia scoperto, basta che guardi il mio compositore

Buon per tè la mia spiegazione è rivolta a semplificare la vita a chi sta provando a usare le librerie audio di mShell.

Approposito nel post che mi indichi non vedo sorgenti o mi sbaglio? e oltre l'aver scritto auido.stop() in un punto della discussione

non vedo come si può capirne l'uso.

Ciao....

Link to comment
Condividi su altri siti

Buon per tè la mia spiegazione è rivolta a semplificare la vita a chi sta provando a usare le librerie audio di mShell.

Approposito nel post che mi indichi non vedo sorgenti o mi sbaglio? e oltre l'aver scritto auido.stop() in un punto della discussione

non vedo come si può capirne l'uso.

Ciao....

hai ragione, l'ho scoperto ma non pubblicato, non l'ho usato nell'app pero, ma solo nel file che viene creato dall'app

Link to comment
Condividi su altri siti

Come sempre.....sei stato utilissimo.......

Devo provare ad applicare il tutto sia su mario che sulla pallina.

Approposito volevo chiederti una cosa e faccio riferimento ai suoni .waw che hai allegato a Tank.....

Ho provato a mettere un suono di quelli in Mario.. e ad esempio quando salta se vi è allegato il suono .waw il gioco è come se si fermasse. E cioè, clicco sul tasto 3, mario salta, rimane sospeso, si sente il suono e poi riatterra, ma passano alcuni secondi.

Quindi mi chiedo come faccio ad inserire in mario oppure in ball un suono mp3 o waw senza fare in modo che il gioco rallenti spaentosamente ?????.....comprati na radio, accendila e gioca co i giochini..ma quante ne vuoi ???

Scusa il ritardo.....ma ho delle difficoltà in questi giorni a rispondere celermente

(se mi troverai assente per un pò non spaventarti torno...torno..)

La soluzione cè (o almeno credo) solo che devo sperimantarla anchio. Se vuoi provarci tu ti posto l'idea.

Sempre nella 'Mini Guida di masmil1988' alla voce audio avrai notato che ci sono dei comandi audio.open() audio.pos() audio.close().

Credo che bisogna porre tutti i suoni su un unico file aprirlo ad inizio gioco e poi spostarsi alle varie tracce che vuoi usare.

In questo modo il suono sarà immediato.

La lentezza che riscontri è dovuta al caricamento fisico del file xxx.wav (Un problema secolare di Symbian che vuole sempre comprimere e decomprimere tutti i file che salva) per decomprimerlo ci mette tempo, più il file è lungo più tempo gli serve.

Ti ripeto che la mia è un ipotesi non ho ancora avuto il tempo di provare se quanto detto è vero.

Ciao...

Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy