2011-10-16 10 views
5

He buscado StackOverflow y no puedo encontrar una ubicación como la mía. Estoy usando cuatro botones con cada botón reproduciendo un archivo de sonido.
estoy usando soundpool:
SoundPool sound = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);

También estoy usando el OnLoadCompleteListener() que utiliza registro para crear una notificación de que en LogCat.
Cuando ejecuto el programa en el emulador, veo que las cuatro muestras se cargan por completo. Durante el programa de tres de los sonidos van a jugar, sin embargo, se siempre decir:
WARN/SoundPool(4842): sample 0 not READY

alguna idea .. porque estoy bastante estupefacta. Los archivos de sonido son archivos de onda pcm de 16 bits que reproducen tonos de onda cuadrada. Código
carga:
sound.setOnLoadCompleteListener(new OnLoadCompleteListener(){Android 2.2 - La muestra 0 de SoundPool no está LISTA

 @Override 
     public void onLoadComplete(SoundPool sound, int sampleId, int status) { 
      if(status != 0) 
       Log.e("SOUND LOAD"," Sound ID: " + sampleId + " Failed to load."); 
      else 
       Log.i("SOUND LOAD"," Sound ID: " + sampleId + " loaded."); 
     } 
    }); 

    soundID[0] = sound.load(this, R.raw.greennote, 1); 
    soundID[1] = sound.load(this, R.raw.rednote, 1); 
    soundID[2] = sound.load(this, R.raw.yellownote, 1); 
    soundID[3] = sound.load(this, R.raw.bluenote, 1); 


Reproducir sonido:

streamid.setStreamId(myActivity.sound.play(id, 0.5f, 0.5f, 0, 0, 1)); 

+0

Edite su pregunta para incluir el código que carga y reproduce los sonidos. – Squonk

Respuesta

2

Estoy teniendo los mismos problemas. De mis experimentos, parece que hay algo mal con el manejo de ID. A SoundPool simplemente no le gustan los ID de sonido con el número 0.

Así que he encontrado una solución temporal. Comience mis identificaciones de muestra con 1, no con 0. Espero que esto funcione.

+0

¿Cómo haces eso? Me refiero a comenzar sus ID de muestra con 1? –

+0

Hmmm, estaba usando el SoundPool con un HashMap para realizar un seguimiento de todos los diferentes sonidos. Con HashMap, configura la ID (también llamada 'clave') manualmente. Como parece que no está utilizando un HashMap, mi comentario probablemente no tenga sentido. Buena suerte de todos modos! –

Cuestiones relacionadas