Aller au contenu

Lire un son lorsqu'on secoue le terminal


Invité

Recommended Posts

Bonsoir à tous,

Je développe une petite application "jouet".

Je voudrais jouer un son (un bruitage) lorsque l'androphone est secoué.

Pour le moment je récupère les composantes sur X, Y et Z de l'accélération (de l'accéléromètre) et je calcul la norme du vecteur accélération :

-> racine carré de ( x2 + y2 + z2 )

et quand cette norme s'éloigne de l'accélération "normale" (environ 10m/s2 en pratique) je veux jouer le son.

Pour le moment j'utilise un SoundPool avec un seul flux.

Le problème est le suivant :

- lorsqu'on secoue le téléphone, le son est joué plusieurs fois très rapidement

Donc je voudrais empêcher le déclenchement du son si il est déjà en cours de lecture.

Je n'ai pas trouvé de solution par moi même ...

Merci beaucoup :)

Goten

Lien vers le commentaire
Partager sur d’autres sites

Salut,

J'ai une classe qui joue des sons, avec un méthode qui permet de savoir si un son sort actuellement de l'enceinte

Voici le liens de la classe -> http://projects.octera.info/svn/mobile/src/com/m2pgi/Pyramide/ui/SoundManager.java

Tu peut la récupérer, il faut juste que tu rajoute if (isPlaying()) return au début de la fonction playsound.

Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup !

Bravo pour cette petite classe, simple et pratique visiblement ;)

je ne connaissait pas les possibilités de AudioManager, et il me semble que c'est ce qu'il me manquait ...

mAudioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
mAudioManager.isMusicActive(); // boolean

J'implemente, je teste dès que j'ai le temps, et je revient poster ensuite :D

EDIT : ca fonctionne impeccable ! Merci beaucoup ! (je vais me pencher sur la Doc de SoundManager aussi :P)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...