Android Soundpool Load (String path, int priority)

Estoy intentando cargar un sonido de androide. El sonido está bajo res/raw/myownsound.wav . Ya sé que ya puedo cargar el sonido usando:

  soundPool.load(context, R.raw.myownsound, 1) 

Para propósitos de personalización, me gustaría cargarlo usando:

  soundPool.load("res/raw/myownsound", 1) 

… pero obtengo el siguiente error: error loading res/raw/myownsound . También intenté lo siguiente:

  soundPool.loadSound("android.resource://upg.GraphismeBase/raw/myownsound", 1) 

.. pero también tengo un error: error loading android.resource://upg.GraphismeBase/raw/myownsound

¿Cuál es la forma correcta de usar soundPool.load (path, priority)?

Crear una estructura de carpetas en su proyecto

 /assets/sounds/data/ 

A continuación, copie su archivo wav allí.

 // Declare globally if needed int mySoundId; SoundPool soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0 ); AssetManager am = this.getAssets(); //Use in whatever method is used to load the sounds try { mySoundId = soundPool.load(am.openFd("sounds/data/myownsound"), 1); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

Puede probar esto (no está seguro de su funcionamiento):

 SoundPool mySoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0); int myAudioFile = getResId("claps", R.raw.class); try{ mySoundPool.load(context.getActivity(),myAudioFile,1); } catch (Exception e){ message = String.valueOf(e); } public static int getResId(String variableName, Class<?> c) { Field field = null; int resId = 0; try { field = c.getField(variableName); try { resId = field.getInt(null); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } return resId; } 

Simple manera de hacerlo con un contexto llamado mContext . Carga el recurso por nombre obteniendo el ID de identificador en tiempo de ejecución.

 int sound_id = mContext.getResources().getIdentifier("myownsound", "raw", mContext.getPackageName()); soundPool.load(mContext, sound_id, 1); 

También funciona para cargar archivos extraíbles o xml, reemplazando "raw" por "drawable" o "xml" por ejemplo.

  • Android - es getResource () caro?
  • Android: descarga la imagen desde la URL a la carpeta de activos
  • Eliminación automática de cadenas no referenciadas de strings.xml
  • No se puede obtener recursos de la aplicación Android
  • Obtener Id de recurso de ImageView
  • Color value drawable resource issue
  • Cómo leer una imagen de drawble a objeto de archivo en java?
  • El tamaño de la instalación de la aplicación es el mismo en diferentes tipos de dispositivos
  • Recursos de referencia en javadoc
  • Cambiar el recurso de cadena por sabor / debug-build
  • "@android: dibujable / ic_" vs "@ * android: drawable / ic_"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.