2009-09-08 10 views
3

configurer mon SoundPool, et charger une ressource sonore comme cela dans onCreate():Pourquoi SoundPool est-il désactivé?

soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0); 
soundId = soundPool.load(this, R.raw.edible_underwear, 1); 

Et puis j'essaie de jouer ce son à deux reprises dans un onClick(), un surtout lent parleur gauche, et un surtout rapide dans la haut-parleur droit:

soundPool.play(soundId, 0.9f, 0.1f, 0, -1, 0.7f); 
soundPool.play(soundId, 0.1f, 0.1f, 0, -1, 1.5f); 

Aucun son ne peut être entendu. J'ai joué avec les volumes, les priorités et les tarifs. Jusqu'ici en vain. Est-ce que je manque quelque chose d'évident?

+0

Avec quoi jouez-vous? Peut-être avez-vous besoin d'une instance de MediaPlayer, par exemple. MediaPlayer mp = nouveau MediaPlayer(); – Bostone

+19

R.raw.edible_underwear .... intéressant – stealthcopter

Répondre

16

Il s'avère que SoundPool ont deux bugs/restrictions.

  1. Le volume sonore est compris entre 0,0f et 1,0f. Les fonctions 1.0f et 0.0f sont toutes deux désactivées, vous devez donc limiter votre volume à 0.99f. Le chargement d'échantillons dans le SoundPool qui n'entrent pas dans le RAM n'entraînera pas de levée d'exception, et aucun soundId retourné ne pourra être vérifié en cas de défaillance. Donc, vous devez regarder vos journaux, et prier les dieux Android que vos échantillons correspondent sur l'appareil cible.
+0

Je soupçonne que votre premier point est le problème que j'ai! Content que quelqu'un l'ait compris. Pourquoi l'API utilise-t-elle 0.0 _and_ 1.0 comme mute? !! – gary

+7

Parce que si vous reculez et regardez Android dans son ensemble, alors Android est un gâchis incohérent. Il est assez évident que chaque développeur suit ses propres standards de conception, et s'il compile + fonctionne, alors c'est assez bon. – PeyloW

+0

Nous perdons un temps de développement précieux avec des erreurs comme celle-ci! Je ne peux pas croire que cela me causait tant d'erreurs avec le son. Merci PeyloW de fournir cette information! – Nick

Questions connexes